最近有一个项目很火,那就是直播答题的,接到公司的这个任务,开发直播答题的聊天室功能。在线的人相互聊天。之前做过类似的,当时都是使用的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后端加小程序前端结合  今天就给大家分享到这里,希望对大家有所帮助。欢迎交流  大家相互学习 共同提高 我的 微信号:qiufeng2999

05-10 23:03