src/Lib/Client.php
protected function getConnection($key)
    {
        $offset = crc32($key) % count($this->_globalServers);
        if ($offset < 0) {
            $offset = -$offset;
        }

        if (!isset($this->_globalConnections[$offset]) || feof($this->_globalConnections[$offset])) {
            $connection = stream_socket_client("tcp://{$this->_globalServers[$offset]}", $code, $msg, $this->timeout);
            if (!$connection) {
                throw new \Exception($msg);
            }
            stream_set_timeout($connection, $this->timeout);
            if (class_exists('\Workerman\Lib\Timer') && php_sapi_name() === 'cli') {
                $timer_id = \Workerman\Lib\Timer::add($this->pingInterval, function ($connection) use (&$timer_id) {
                    $buffer = pack('N', 8) . "ping";
                    if (strlen($buffer) !== @fwrite($connection, $buffer)) {
                        @fclose($connection);
                        \Workerman\Lib\Timer::del($timer_id);
                    }
                }, array($connection));
            }
            $this->_globalConnections[$offset] = $connection;
        }
        return $this->_globalConnections[$offset];
    }
protected function getConnection($key)
    {
        $offset = crc32($key) % count($this->_globalServers);
        if ($offset < 0) {
            $offset = -$offset;
        }

        if (!isset($this->_globalConnections[$offset]) || feof($this->_globalConnections[$offset])) {
            $connection = stream_socket_client("tcp://{$this->_globalServers[$offset]}", $code, $msg, $this->timeout);
            if (!$connection) {
                throw new \Exception($msg);
            }
            stream_set_timeout($connection, $this->timeout);
            if (class_exists('\Workerman\Lib\Timer') && php_sapi_name() === 'cli') {
                $timer_id = \Workerman\Lib\Timer::add($this->pingInterval, function ($connection) use (&$timer_id) {
                    $buffer = pack('N', 8) . "ping";
                    if (strlen($buffer) !== @fwrite($connection, $buffer)) {
                        @fclose($connection);
                        \Workerman\Lib\Timer::del($timer_id);
                    }
                }, array($connection));
            }
            $this->_globalConnections[$offset] = $connection;
        }
        return $this->_globalConnections[$offset];
    }
protected function getConnection ( $ key ) { $ offset = crc32 ( $ key ) % count ( $ this -> _globalServers ) ; if ( $ offset < 0 ) { $ offset = - $ offset ; } if ( ! isset ( $ this -> _globalConnections [ $ offset ] ) || feof ( $ this -> _globalConnections [ $ offset ] ) ) { $ connection = stream_socket_client ( "tcp://{$this->_globalServers[$offset]}" , $ code , $ msg , $ this -> timeout ) ; if ( ! $ connection ) { throw new \ Exception ( $ msg ) ; } stream_set_timeout ( $ connection , $ this -> timeout ) ; if ( class_exists ( '\Workerman\Lib\Timer' ) && php_sapi_name ( ) === 'cli' ) { $ timer_id = \ Workerman \ Lib \ Timer :: add ( $ this -> pingInterval , function ( $ connection ) use ( & $ timer_id ) { $ buffer = pack ( 'N' , 8 ) . "ping" ; if ( strlen ( $ buffer ) !== @ fwrite ( $ connection , $ buffer ) ) { @ fclose ( $ connection ) ; \ Workerman \ Lib \ Timer :: del ( $ timer_id ) ; } } , array ( $ connection ) ) ; } $ this -> _globalConnections [ $ offset ] = $ connection ; } return $ this -> _globalConnections [ $ offset ] ; }
Connect to global server.
@throws \Exception
Connect to global server .