目的:
浏览器和服务端建立websocket长连接
服务端同时作为websocket客户端跟第三方接口保持长连接
拿到第三方数据后,将结果 返回给指定的客户端用户
envent.php代码:
class Events
{
public static $connection_to_8989 = null;
public static function onConnect($client_id){
self::$connection_to_8989 = new AsyncTcpConnection("ws://127.0.0.1:8989");
self::$connection_to_8989->onMessage = function($connection_to_8989, $buffer)use($client_id)
{
Gateway::sendToClient($client_id,$client_id." said 【".$buffer."】 from 8787");
};
self::$connection_to_8989->connect();
}
public static function onMessage($client_id, $message){
sleep(mt_rand(1,3));
self::$connection_to_8989->send($message);
}
public static function onClose(){
self::$connection_to_8989->close();
}
}
请问这段代码能实现我的需求吗?
感觉有点问题,self::$connection_to_8989每次被覆盖了。
应该用一个数组存储所有的$connection_to_8989,onClose的时候从数组中删除对应的$connection_to_8989。
还有一个疑问,self::$connection_to_8989[$client_id]->onMessage 这个客户端回调不会收到其他连接的消息吧???