public static function connect($ip = '127.0.0.1', $port = 2206) { if (!self::$_remoteConnection) { self::$_remoteIp = $ip; self::$_remotePort = $port; self::$_remoteConnection = new AsyncTcpConnection('Text://' . self::$_remoteIp . ':' . self::$_remotePort); self::$_remoteConnection->onClose = 'Channel\\Client::onRemoteClose'; self::$_remoteConnection->onConnect = 'Channel\\Client::onRemoteConnect'; self::$_remoteConnection->onMessage = function ($connection, $data) { $data = unserialize($data); $event = $data['channel']; $event_data = $data['data']; if (!empty(self::$_events[$event])) { call_user_func(self::$_events[$event], $event_data); } elseif (!empty(Client::$onMessage)) { call_user_func(Client::$onMessage, $event, $event_data); } else { throw new \Exception("event:{$event} have not callback"); } }; self::$_remoteConnection->connect(); if (empty(self::$_pingTimer)) { self::$_pingTimer = Timer::add(self::PING_INTERVAL, 'Channel\\Client::ping'); } } }
public static function connect($ip = '127.0.0.1', $port = 2206) { if (!self::$_remoteConnection) { self::$_remoteIp = $ip; self::$_remotePort = $port; self::$_remoteConnection = new AsyncTcpConnection('Text://' . self::$_remoteIp . ':' . self::$_remotePort); self::$_remoteConnection->onClose = 'Channel\\Client::onRemoteClose'; self::$_remoteConnection->onConnect = 'Channel\\Client::onRemoteConnect'; self::$_remoteConnection->onMessage = function ($connection, $data) { $data = unserialize($data); call_user_func(Client::$onMessage, $data['channel'], $data['data']); }; self::$_remoteConnection->connect(); } }