如何只使用wokerman进行全员广播

写了个聊天室,只用到了workerman,
想在来消息时候进行全员广播,发现只有某一个客户端收的到信息
$worker->onMessage = function($conn,$data) use ($worker,$mongo){
if(!$data)
{
return;
}

$json_arr = BaseJson::decode($data);

foreach($worker->connections as $connection){
switch($json_arr['type']){
case 'pong':
case 'login':
// $msg = $mongo->find('chatmsg', ['date'=>date('Y-m-d')]);
// $json = ['type'=>'showsay','msg'=>count($msg)==0?0:$msg];
// $connection->send(BaseJson::encode($json));
return;
case 'say':
$content = $json_arr['content'];
$time = date('Y-m-d H:i:s');
$json = ['content'=>$content,'time'=>$time,'type'=>'showsay','date'=>date('Y-m-d')];
$mongo->insert('chatmsg', $json);
$connection->send(BaseJson::encode($json));
return;
}
}
};


前台
ws.onmessage = function(evt)
{
var obj = (JSON.parse(evt.data));
if(obj.type=='statistics'){
$('#people_num').html(obj.total_conn_person);
}else if(obj.type=='showsay'){
$('#ct').append(
'<div>"'+obj.content+'" "'+obj.time+'"</div>'
);
console.log(obj);
}

};
已邀请:

walkor

赞同来自:

case ‘say’:
分支里面不要写return

3p大法好 - LNMP爱好者

赞同来自:

所跌死捏。。。又犯傻了,刚把TcpConnection看了遍。谢谢大大

walkor

赞同来自:

不客气

要回复问题请先登录注册