用Swoole如何搭建一个IM即时通讯(仿微信)

PHP / 217人浏览 / 0人评论


一、swoole应用IM场景

1 与硬件设备连接通讯(定位设备)

2 IM系统(用于直播页面的聊天通讯)


什么是IM系统

即时通讯(Instant Messaging,简称IM)是一个实时通信系统,允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流。实现方式有两种。第一种基于Server转发的,Client双方通信会经过Server转发来完成消息传递。例如QQ、微信。


二、部署图



三、程序流程

1、用户业务ID绑定swool动态fd

因为fd为动态的,是每次链接swool时生成的,发消息的时候需要用到,所以每次建立链接时需要跟业务ID进行绑定


2、发送/接受消息

设A用户给B用户发消息,用B用户业务ID去数据库或者redis反查fd,并使用fd进行发送消息(我这里发送的是json,这样就可以发送文字、图片、文件多种类型)。

当swool监听发消息时间,则户主动推送给B用户,B用户获取到消息并解析信息类型

3、检测是否有未读消息

当A向B发送消息,B可以收到消息的前提是B必须在链接这swool,但是实际情况下,用户并不是一直都在链接(是允许用户下线的),所以当链接断开后再次产生链接就需要检测未读消息,并且发送给自己




文章来自:https://blog.csdn.net/qq_18353611/article/details/88995720

作者:phper


转自公众号:PHP自学中心

如有侵权请联系作者删除


0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我