天天看点

基于 Laravel-swoole 开发部署的在线聊天室

分享链接:http://webim.xhzyxed.cn/

源码:https://github.com/shisiying/webim

最近看了swoole的文档之后,觉得应该从项目需求的角度来增强一下学习的力度,于是有了以下这个小demo,想法参考了这个项目,这个项目没有任何框架直接使用扩展来开发,并且以文本形式存储用户数据,本项目参考了其前端页面样式以及部分逻辑使用laravel以及使用laravel-swoole的package laravel-x

重构了整个项目,其中使用了swoole的http_server,swoole_websocket_server,异步任务,和swoole_table。

  • 用户数据使用了swoole_table进行存储
  • 所有ws请求都是用异步任务进行处理,php也可以使用异步了,撒花
  • 使用http_server创建http服务 (nginx +swoole 配置http服务器,php-fpm感觉到压力
  • 使用swoole_websocket_server搭建ws服务

目前实现的功能有 :

  • 支持群聊
  • 支持发送文字
  • 支持登出
  • 支持切换房间聊天功能
  • 支持私聊,可以点点私聊
  • 显示未读消息数
  • 接入server酱,使用的是我开发的sevenshi-serverchan,订阅过后可以收到群聊的推送

你可以直接看一下最终的效果,请查看 http://webim.xhzyxed.cn/ 。