swoole+websocket+redis实现一对一聊天
如同web端的QQ和微信一样,这是一个web端的聊天程序。 环境:linux(centos) + php7.2 + swoole扩展 + redis + mysql Redis 实现每个连接websocket的服务都唯一绑定一个用户。通过 用户账号 = websocket fd 存到redis中。 Mysql 实现离线消息池。如果一个用户不在线,则其他用户发送给他的消息暂时存储在mysql。待该用户上线时,再从离线消息池取出发送。 此处是看了 还是感谢大神。 具体参考代码和相应注释: 服务端代码: <? php $server = new swoole_websocket_server("0.0.0.0", 9052 ); $redis = new Redis(); $redis ->connect('127.0.0.1', 6379 ); $db = new mysqli('127.0.0.1', 'test', 'test', 'thinkphp5' ); $server ->on('open', function (swoole_websocket_server $server , $request ) { echo "server: handshake success with fd{ $request ->fd}\n"; // $request->fd 是客户端id })