最近有一个项目很火,那就是直播答题的,接到公司的这个任务,开发直播答题的聊天室功能。在线的人相互聊天。之前做过类似的,当时都是使用的ajax轮询的,这种非常的耗费服务器。所以这次就开始使用socket来做,我主要负责后端开发,主要就是配合前端做一些接口。
小程序前端使用微信的空间 wx.connectSocket 做好相关的wss配置,然后我这边使用PHP来做socket 服务读写。
公司采用的是gateway worker 具体不多说,大家可以看他的文档哈,我就直接上代码了
GatewayWorker2.x 3.x 手册
http://doc2.workerman.net/326102
首先小程序前端使用wx.connectSocket 连接成功socket以后会返回 clientid,我们就是用后端php做clientid绑定,将每场直播答题考试的会场号作为一个群组,
Gateway::joinGroup($clientid, $group_id);
绑定成功。然后小程序里的用户发送消息,就是用curl post消息内容到后端php接口上
一样,不多说,我直接上代码了 向一个群组的所有终端客户推送消息,这样只要前端发送消息,后端就直接拿到内容,推送给所有的终端用户。注意,推送的内容记得使用json编码再推送哦。
Gateway::sendToGroup($groupName=$redisName, $sendDataString); $ary[‘groupCount‘]= Gateway::getClientCountByGroup($groupName); $ary[‘groupClientsession‘]= Gateway::getClientSessionsByGroup($groupName); $ary[‘getAllClientCount‘]= Gateway::getAllClientCount($groupName);
好了,今天就给大家分享到这里了。希望对大家有所帮助。最近的直播答题非常火,希望这个分享能够帮助大家开发这个直播聊天室提供帮助。
我,秋峰,phper,目前自创业,做项目系统开发,php后端加小程序前端结合 欢迎交流 大家相互学习 共同提高 我的 微信号:qiufeng2983