public static function onRemoteClose() { echo "Waring channel connection closed and try to reconnect\n"; self::$_remoteConnection = null; self::clearTimer(); self::$_reconnectTimer = Timer::add(1, 'Channel\\Client::connect', array(self::$_remoteIp, self::$_remotePort)); }
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(); } }