original_string: public function checkConnection($socket)
      {
          // Remove EV_EXPECT for windows.
          if(DIRECTORY_SEPARATOR === '\\') {
              Worker::$globalEvent->del($socket, EventInterface::EV_EXCEPT);
          }
          // Check socket state.
          if ($address = stream_socket_get_name($socket, true)) {
              // Remove write listener.
              Worker::$globalEvent->del($socket, EventInterface::EV_WRITE);
              // Nonblocking.
              stream_set_blocking($socket, 0);
              // Compatible with hhvm
              if (function_exists('stream_set_read_buffer')) {
                  stream_set_read_buffer($socket, 0);
              }
              // Try to open keepalive for tcp and disable Nagle algorithm.
              if (function_exists('socket_import_stream') && $this->transport === 'tcp') {
                  $raw_socket = socket_import_stream($socket);
                  socket_set_option($raw_socket, SOL_SOCKET, SO_KEEPALIVE, 1);
                  socket_set_option($raw_socket, SOL_TCP, TCP_NODELAY, 1);
              }
              // Register a listener waiting read event.
              Worker::$globalEvent->add($socket, EventInterface::EV_READ, array($this, 'baseRead'));
              // There are some data waiting to send.
              if ($this->_sendBuffer) {
                  Worker::$globalEvent->add($socket, EventInterface::EV_WRITE, array($this, 'baseWrite'));
              }
              $this->_status                = self::STATUS_ESTABLISHED;
              $this->_remoteAddress         = $address;
              $this->_sslHandshakeCompleted = true;
  
              // Try to emit onConnect callback.
              if ($this->onConnect) {
                  try {
                      call_user_func($this->onConnect, $this);
                  } catch (\Exception $e) {
                      Worker::log($e);
                      exit(250);
                  } catch (\Error $e) {
                      Worker::log($e);
                      exit(250);
                  }
              }
              // Try to emit protocol::onConnect
              if (method_exists($this->protocol, 'onConnect')) {
                  try {
                      call_user_func(array($this->protocol, 'onConnect'), $this);
                  } catch (\Exception $e) {
                      Worker::log($e);
                      exit(250);
                  } catch (\Error $e) {
                      Worker::log($e);
                      exit(250);
                  }
              }
          } else {
              // Connection failed.
              $this->emitError(WORKERMAN_CONNECT_FAIL, 'connect ' . $this->_remoteAddress . ' fail after ' . round(microtime(true) - $this->_connectStartTime, 4) . ' seconds');
              if ($this->_status === self::STATUS_CLOSING) {
                  $this->destroy();
              }
              if ($this->_status === self::STATUS_CLOSED) {
                  $this->onConnect = null;
              }
          }
      }
code: public function checkConnection($socket)
      {
          // Remove EV_EXPECT for windows.
          if(DIRECTORY_SEPARATOR === '\\') {
              Worker::$globalEvent->del($socket, EventInterface::EV_EXCEPT);
          }
          // Check socket state.
          if ($address = stream_socket_get_name($socket, true)) {
              // Remove write listener.
              Worker::$globalEvent->del($socket, EventInterface::EV_WRITE);
              // Nonblocking.
              stream_set_blocking($socket, 0);
              // Compatible with hhvm
              if (function_exists('stream_set_read_buffer')) {
                  stream_set_read_buffer($socket, 0);
              }
              // Try to open keepalive for tcp and disable Nagle algorithm.
              if (function_exists('socket_import_stream') && $this->transport === 'tcp') {
                  $raw_socket = socket_import_stream($socket);
                  socket_set_option($raw_socket, SOL_SOCKET, SO_KEEPALIVE, 1);
                  socket_set_option($raw_socket, SOL_TCP, TCP_NODELAY, 1);
              }
              // Register a listener waiting read event.
              Worker::$globalEvent->add($socket, EventInterface::EV_READ, array($this, 'baseRead'));
              // There are some data waiting to send.
              if ($this->_sendBuffer) {
                  Worker::$globalEvent->add($socket, EventInterface::EV_WRITE, array($this, 'baseWrite'));
              }
              $this->_status                = self::STATUS_ESTABLISHED;
              $this->_remoteAddress         = $address;
              $this->_sslHandshakeCompleted = true;
  
              // Try to emit onConnect callback.
              if ($this->onConnect) {
                  try {
                      call_user_func($this->onConnect, $this);
                  } catch (\Exception $e) {
                      Worker::log($e);
                      exit(250);
                  } catch (\Error $e) {
                      Worker::log($e);
                      exit(250);
                  }
              }
              // Try to emit protocol::onConnect
              if (method_exists($this->protocol, 'onConnect')) {
                  try {
                      call_user_func(array($this->protocol, 'onConnect'), $this);
                  } catch (\Exception $e) {
                      Worker::log($e);
                      exit(250);
                  } catch (\Error $e) {
                      Worker::log($e);
                      exit(250);
                  }
              }
          } else {
              // Connection failed.
              $this->emitError(WORKERMAN_CONNECT_FAIL, 'connect ' . $this->_remoteAddress . ' fail after ' . round(microtime(true) - $this->_connectStartTime, 4) . ' seconds');
              if ($this->_status === self::STATUS_CLOSING) {
                  $this->destroy();
              }
              if ($this->_status === self::STATUS_CLOSED) {
                  $this->onConnect = null;
              }
          }
      }
code_tokens: public function checkConnection ( $ socket ) { // Remove EV_EXPECT for windows. if ( DIRECTORY_SEPARATOR === '\\' ) { Worker :: $ globalEvent -> del ( $ socket , EventInterface :: EV_EXCEPT ) ; } // Check socket state. if ( $ address = stream_socket_get_name ( $ socket , true ) ) { // Remove write listener. Worker :: $ globalEvent -> del ( $ socket , EventInterface :: EV_WRITE ) ; // Nonblocking. stream_set_blocking ( $ socket , 0 ) ; // Compatible with hhvm if ( function_exists ( 'stream_set_read_buffer' ) ) { stream_set_read_buffer ( $ socket , 0 ) ; } // Try to open keepalive for tcp and disable Nagle algorithm. if ( function_exists ( 'socket_import_stream' ) && $ this -> transport === 'tcp' ) { $ raw_socket = socket_import_stream ( $ socket ) ; socket_set_option ( $ raw_socket , SOL_SOCKET , SO_KEEPALIVE , 1 ) ; socket_set_option ( $ raw_socket , SOL_TCP , TCP_NODELAY , 1 ) ; } // Register a listener waiting read event. Worker :: $ globalEvent -> add ( $ socket , EventInterface :: EV_READ , array ( $ this , 'baseRead' ) ) ; // There are some data waiting to send. if ( $ this -> _sendBuffer ) { Worker :: $ globalEvent -> add ( $ socket , EventInterface :: EV_WRITE , array ( $ this , 'baseWrite' ) ) ; } $ this -> _status = self :: STATUS_ESTABLISHED ; $ this -> _remoteAddress = $ address ; $ this -> _sslHandshakeCompleted = true ; // Try to emit onConnect callback. if ( $ this -> onConnect ) { try { call_user_func ( $ this -> onConnect , $ this ) ; } catch ( \ Exception $ e ) { Worker :: log ( $ e ) ; exit ( 250 ) ; } catch ( \ Error $ e ) { Worker :: log ( $ e ) ; exit ( 250 ) ; } } // Try to emit protocol::onConnect if ( method_exists ( $ this -> protocol , 'onConnect' ) ) { try { call_user_func ( array ( $ this -> protocol , 'onConnect' ) , $ this ) ; } catch ( \ Exception $ e ) { Worker :: log ( $ e ) ; exit ( 250 ) ; } catch ( \ Error $ e ) { Worker :: log ( $ e ) ; exit ( 250 ) ; } } } else { // Connection failed. $ this -> emitError ( WORKERMAN_CONNECT_FAIL , 'connect ' . $ this -> _remoteAddress . ' fail after ' . round ( microtime ( true ) - $ this -> _connectStartTime , 4 ) . ' seconds' ) ; if ( $ this -> _status === self :: STATUS_CLOSING ) { $ this -> destroy ( ) ; } if ( $ this -> _status === self :: STATUS_CLOSED ) { $ this -> onConnect = null ; } } }
docstring: Check connection is successfully established or faild.
  
  @param resource $socket
  @return void
docstring_tokens: Check connection is successfully established or faild .