感触life

php+socket发多端实现实时消息同步思路

项目聊天系统有小程序端跟pc网页端,现要加个多端实时同步

登录:登录时写3个缓存,( key=userInfo,value=[fd1,fd2,fd3 ]),(key=fd,value= userInfo ),(key=token,value=userInfo)

实现思路:A在手机端登录获取临时fd=1,A在pc端登录获取临时fd=2,(维护A拥有的fd关系)。
B登录获取临时fd=3,当B发送消息给fd=1时候,用fd=1找到A,根据A找到fd1,fd2,分别发送给他们。
B发消息时候,也需要返回给自己是否发送成功,同理,也需要维护fd关系,发送成功也需要分别发送给自己的所有fd。

用 $server ->isEstablished($fd)判断fd是否在线
再发送消息 $server ->push($fd,$data);

文档1:https://www.swoole.com/
文档2:https://wiki.swoole.com/wiki/page/399.html
码字很辛苦,转载请注明来自感触life-博客《php+socket发多端实现实时消息同步思路》

评论