请教一个swoole websocket的问题

这两天开发中要用到swoole的websocket,但是有些没太搞明白

$serv = new swoole_websocket_server("127.0.0.1", 9502);

$serv->on('Open', function($server, $req) {
    echo "connection open: ".$req->fd;
});

$serv->on('Message', function($server, $frame) {
    echo "message: ".$frame->data;
    $server->push($frame->fd, json_encode(["hello", "world"]));
});

$serv->on('Close', function($server, $fd) {
    echo "connection close: ".$fd;
});

$serv->start();

这是swoole官网的demo,通过监听消息事件客户端发送消息给服务端的时候,服务端会发送消息给客户端,那如果我想实现这种场景:如果队列里面有消息了,那就给用户发送一条消息(这里的队列假设为redis的队列),这样的话消息事件就监听不到了,请问一下这个如何实现

阅读 2.5k
1 个回答

那你就要存储在线用户的数据啊。。连上了记录下用户标识和客户端在websocket的标识,一一对应,有数据了,你调用push方法把数据推给用户

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏