其中一些思路是看一位老铁的老铁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