基于swoole的聊天室开发(三)

上节上了,用户消息的推送,中的task,任务投递,接着继续往下说,

onMessage中说到type==1为,将用户和$fd绑定,以及上线通知的推送,接着说,type类型不为1的情况,那就是用户发送消息,这边的流程就是:用户发送消息,接着,服务器收到消息以后,将消息发送给每个用户,然后将用户发送的消息保存下来。其中上面的代码也比较简单,就不具体介绍了。

下面说一下open事件。该事件就是用户刚连接时候,服务器收到的信息。


这边需要做的就是,获取聊天室内最新的11条数据,然后给推送给登录得用户,这样就不会出现因为突然的下线或者退出帐号,下次登录无法获取聊天记录。


onFinish方法就是,任务投递完成后,tash方法会将结果返回给onFinish。

onClose方法,就是用户在断开连接后的处理,这边需要做的就是,将用户信息和$fd进行解绑,然后给其他用户推送,该用户下线。同时,在redis集合中将$fd给删除。防止下次消息推送,因为找不到该用户而报错。

一个聊天室PHP的内容就那么多。

前端的内容就不放了,我会将项目扔到git中,可以进行下载,测试。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 上一节讲解到,关于redis的单例模式,接下来开始讲解websocket的具体代码了。 首先需要引入一些swool...
    youngxs阅读 3,950评论 0 0
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,732评论 0 15
  • “ 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列...
    落羽成霜丶阅读 9,484评论 1 41
  • 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能...
    Sophie12138阅读 3,964评论 0 7
  • 距离2017年结束还剩不到几天的时间 春夏秋冬 四季更替 这一年 终于要结束了 心里五味杂陈总想写点什么 因为这...
    小沐汐啊阅读 1,618评论 2 5