搜尋

首頁  >  問答  >  主體

php - 請教一個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的佇列),這樣的話訊息事件就監聽不到了,請問一下這個如何實作

怪我咯怪我咯2820 天前512

全部回覆(1)我來回復

  • PHPz

    PHPz2017-05-16 13:06:52

    那你就要儲存線上用戶的資料啊。 。連上了記錄下用戶標識和客戶端在websocket的標識,一一對應,有數據了,你調用push方法把數據推給用戶

    回覆
    0
  • 取消回覆