请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

singwa老师您好,在第9-5章结束后关于聊天室和赛事直播同时使用的问题

9-5结束的时候,当时我看视频中只测试了聊天功能没问题,但是赛况推送有问题。发布后,内容跑到了聊天室,而没有出现在直播页面,后来发现是live.js和chart.js中的push方法名字相同覆盖了,修改之后,还会出现,赛况推送遍历redis中所有fd就会给聊天室中推送消息。我觉得这一块您应该声明一下,因为9-5后面就没有相关内容了

https://img1.sycdn.imooc.com//szimg/5b7cdb5a000116bd03910144.jpg

https://img1.sycdn.imooc.com//szimg/5b7cdb5a00016b8c03320232.jpg

https://img1.sycdn.imooc.com//szimg/5b7cdb5a0001092b09320360.jpg


正在回答 回答被采纳积分+3

插入代码

1回答

singwa 2018-08-22 12:11:24

你好,这个问题老师课程里面说明了,你需要修改端口,

0 回复 有任何疑惑可以回复我~
  • 提问者 李墨丶 #1
    端口修改了啊,我直播和聊天用的端口是两个端口的。
    回复 有任何疑惑可以回复我~ 2018-08-22 13:35:40
  • singwa 回复 提问者 李墨丶 #2
    您好。那看看老师说的第二个方案,就是连接数数据保存的redis里面。
    回复 有任何疑惑可以回复我~ 2018-08-22 14:16:52
  • 提问者 李墨丶 回复 singwa #3
    这个地方就是由于onOpen事件将连接用户fd都存入了redis中导致推送消息的时候取出来的fd有多余的,就是聊天室那边存进去的fd
    public function onOpen($ws, $request) {
            var_dump($request->fd);
            //用户登录后,我们需要进行记录, 将$fd存储进redis
            \app\common\lib\redis\Predis::getInstance()->sAdd(config('redis.live_game_key'),$request->fd);
    
        }
    
     $clients = Predis::getInstance()->sMembers(config("redis.live_game_key"));
    
            foreach($clients as $fd) {
                $serv->push($fd, json_encode($data));
            }
    
    可是我现在没想懂怎么分离开或者有其他好点的办法
    回复 有任何疑惑可以回复我~ 2018-08-22 14:35:12
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号