赛事直播窗口和聊天窗口内容冲突了

来源:9-5 聊天室功能开发

Dire16

2018-08-12

使用live.html发送一条赛事直播内容,结果,在聊天串口显示了定义的content属性,赛制直播窗口没有任何信息出现

http://img.mukewang.com/szimg/5b6fb4eb0001078412900641.jpg

http://img.mukewang.com/szimg/5b6fb4eb00013bfa12950628.jpg

http://img.mukewang.com/szimg/5b6fb4eb0001fc6413560602.jpg

http://img.mukewang.com/szimg/5b6fb4ec0001d7d508280483.jpg

http://img.mukewang.com/szimg/5b6fb4ec0001411110280459.jpg


写回答

3回答

hualaoshuan

2019-09-30

需要改两个地方

1. chart.js 里的push() 方法名改掉 因为和 live.js 里方法名重复了

2.ws.php 里把onOpen()方法判断一下,把直播的fd 放入 redis,其它fd 不放

public function onOpen($ws, $request){

        $info = $ws->connection_info($request->fd);

        if($info['server_port'] == self::PORT){

            // 把 $request->fd 数据 放入集合(sets)

            \app\common\lib\redis\Predis::getInstance()->sAdd(config('redis.live_game_key'), $request->fd);

        }


       echo "open - {$request->fd} \n";


    }


1
2
慕粉4229959
32赞
2020-09-27
共2条回复

李墨丶

2018-08-22

你好,你的问题解决了吗?我的现在也是这种情况   还没整好

0
0

singwa

2018-08-13

同学您好。您说的意思是 两个地方的 websocket的显示的内容一样还是说 两者的内容串了?

0
2
Dire16
老师您好,问题应该是找着了,通过live.html发送的内容出现在聊天窗口而没出现在直播窗口,原因是live.js和chart.js中都有push方法,推送的时候live.js中的push被覆盖了;其次,聊天窗口出现了live.js的内容,原因应该是聊天和直播的fd都存在了同一个redis key中,通过foreach遍历推送,以至于直播和聊天的fd都收到了相应的内容,这个原因只是猜测,目前在想办法验证
2018-08-14
共2条回复

Swoole入门到实战打造高性能赛事直播平台

swoole创始人推荐,借助Swoole打造高性能直播平台

2228 学习 · 1062 问题

查看课程