Exemplo n.º 1
0
 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');
         }
     }
 }
Exemplo n.º 2
0
 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();
     }
 }