Преглед на файлове

加一个_localSocket 在构造函数里把parseSocketAddress的结果存储在_localSocket
省得在mater或者worker里listen()时重复解析

hk преди 6 години
родител
ревизия
703511e819
променени са 1 файла, в които са добавени 9 реда и са изтрити 2 реда
  1. 9 2
      Worker.php

+ 9 - 2
Worker.php

@@ -321,6 +321,13 @@ class Worker
      */
     protected $_socketName = '';
 
+    /** parse from _socketName avoid parse again in master or worker
+     * LocalSocket The format is like tcp://0.0.0.0:8080
+     * @var string
+     */
+
+    protected $_localSocket=null;
+
     /**
      * Context of socket.
      *
@@ -2159,7 +2166,7 @@ class Worker
         // Context for socket.
         if ($socket_name) {
             $this->_socketName = $socket_name;
-            $this->parseSocketAddress();
+            $this->_localSocket = $this->parseSocketAddress();
             if (!isset($context_option['socket']['backlog'])) {
                 $context_option['socket']['backlog'] = static::DEFAULT_BACKLOG;
             }
@@ -2184,7 +2191,7 @@ class Worker
 
         if (!$this->_mainSocket) {
 
-            $local_socket = $this->parseSocketAddress();
+            $local_socket = !empty($this->_localSocket)?$this->_localSocket:$this->parseSocketAddress();
 
             // Flag.
             $flags = $this->transport === 'udp' ? STREAM_SERVER_BIND : STREAM_SERVER_BIND | STREAM_SERVER_LISTEN;