关于sendToGroup,求救。。。。

javascript

我的问题是:一个多人在线的游戏房间里面,在onWorkerStart里开一个定时器监听玩家进入房间,当人数为大于2人的时候开始游戏,前端页面怎么接收到信息呢?前端onmessage里面好像是客户端主动发送的,能不能gateway主动发送呢?如果已经开始游戏了,那下一个人怎么实时看到游戏中的画面呢?下面这段代码是不是不对或者思路不对还是哪里不对,困扰了3天,每晚几乎没有睡,看了手册和社区里的问题都没有怎么明白,求大神指导,第一次接触workerman,谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢了。

public static function onWorkerStart($worker){
Timer::add(2, function(){
if(isset($_SESSION)){
    // 获取房间在线人数
    $roomId = $_SESSION;
    $online = Gateway::getClientCountByGroup($roomId);
    if($online>0){
        //获取房间内所有用户列表 
        $clientsList = Gateway::getClientSessionsByGroup($roomId);
        Gateway::sendToGroup($roomId, json_decode($message_data));
    }
}else {
    echo 2;
}
})
}
3405 2 0
2个回答

six

页面里也是用onmessage里收啊
主动发可以用定时器定时发过去

lalala

具体业务逻辑都写在onMessage里边。Timer是计时器,一般是控制别的功能,比如一局多长时间结束。

  • 暂无评论
年代过于久远,无法发表回答
×
🔝