GatewayWorker+laravel5.5+layim即时通讯项目demo

其中一些思路是看一位老铁的老铁demo,感谢这位老铁! https://github.com/shmilylbelva/webim,这位老铁用的是环信,我这里是用GatewayWorker+laravel5.5实现,虽然不能跟环信比,但是基本功能还是能实现!

layim  http://layim.layui.com

workerman http://www.workerman.net

其他不多说先上图,服务端请往下看:

1.好友上线通知

2.实现好友聊天

3.好友个性资料

4.个性分组和文件发送

 

5.群聊

 

6.加好友界面

体验地址:http://m.idomino.net:8081/ ,注册两个号,请在pc一个用默认浏览器打开,一个用微信浏览器打开,可以实现互聊,如遇到bug,勿喷!我是新手,请留情!^_^

7.说下服务端思路:

  用laravel集成gatewaywoker,在回调方法里面使用观察者模式,使客户端的消息类型到特定的类处理,其实可以用到反射,但是刚好看观察者就用上了,这样做到根据消息类型通知到专门的处理类,不用把代码全部写在一坨了--

  好友关系:A加了B,B同意之后,A在B的列表里,B也在A的列表里,这里用到的redis中的有序集合,来存储这样的关系

  我的分组:一个用户可能有多个分组,每个分组中有多个好友,我也是用的Redis中的set集合

  消息提醒:比如一个好友请求的消息,一个群解散的消息,上线提醒,在线提醒,目前用的也是redis中的list,后期会改用mongodb来存储

  根据workerman上面的手册来,就能完成这一系列的功能

  如需要源码或更多建议请加Q:2465998757

  

  

 

posted @ 2018-01-26 16:46  king`s  阅读(476)  评论(0编辑  收藏  举报