最近有一个项目很火,那就是直播答题的,接到公司的这个任务,开发直播答题的聊天室功能.在线的人相互聊天.之前做过类似的,当时都是使用的 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
来源: http://www.bubuko.com/infodetail-2469736.html