基於Swoole,寥寥幾行PHP程式碼就能輕鬆實現一個基於WebSocket(全雙工通訊)的聊天室.
也就是說,基於PHP+Swoole(WebSocket)+Redis+MySQL,你可以做一個瀏覽器版本的QQ.
當然,你做線上客服,文字直播,彈幕,遊戲聊天這些也都沒問題.
關鍵就是做好使用者(uid)跟連線(fd)的繫結,比如你可以在連線建立時$ws->on("open", function($ws, $req) {}),對請求$req的cookie進行認證,確定連線的使用者編號uid,然後把連線$req->fd繫結到uid裡,把uid作為Redis的key,uid對應的連線fd作為Redis的value,以後要推送資訊給指定使用者時,就訪問Redis根據uid查詢fd,然後推送訊息$ws->push($fd, $msg).
你看,一氣呵成,是不是很好玩,這得感謝Swoole作者峰哥的付出,Swoole確實是一個重新定義PHP玩法的神器.
基於Swoole,寥寥幾行PHP程式碼就能輕鬆實現一個基於WebSocket(全雙工通訊)的聊天室.
也就是說,基於PHP+Swoole(WebSocket)+Redis+MySQL,你可以做一個瀏覽器版本的QQ.
當然,你做線上客服,文字直播,彈幕,遊戲聊天這些也都沒問題.
關鍵就是做好使用者(uid)跟連線(fd)的繫結,比如你可以在連線建立時$ws->on("open", function($ws, $req) {}),對請求$req的cookie進行認證,確定連線的使用者編號uid,然後把連線$req->fd繫結到uid裡,把uid作為Redis的key,uid對應的連線fd作為Redis的value,以後要推送資訊給指定使用者時,就訪問Redis根據uid查詢fd,然後推送訊息$ws->push($fd, $msg).
你看,一氣呵成,是不是很好玩,這得感謝Swoole作者峰哥的付出,Swoole確實是一個重新定義PHP玩法的神器.