gateway 除了sendtoall 能够推送消息,其他的都不行

0
use \GatewayWorker\Lib\Store;
use \GatewayWorker\Lib\Gateway;
class Event
{
/_ 连接服务 _/
public static function onConnect($client_id){

}
/_ 有消息_/
public static function onMessage($client_id, $message) {
$b = Gateway::sendToCurrentClient('123456'); // 无法推送信息
$b = Gateway::sendToClient($client_id,'123456'); // 无法推送信息
$c = Gateway::sendToAll('456'); // 可以 推送信息

return ;
}

是不是有什么地方,需要设置一下

已邀请:

walkor

赞同来自:

收不到可能是客户端问题,可以tcpdump抓包看下是否真的没发送,workerman手册有抓包方法

刘强

赞同来自:

客户端发送了,数据,客户能够收到,用 tcpdump 测试了也能够发包成功! 就是客户端收不到


<script type="text/javascript">

WEB_SOCKET_SWF_LOCATION = "/swf/WebSocketMain.swf";
WEB_SOCKET_DEBUG = true;
var ws, name;

// 连接服务端
function connect() {
// 创建websocket
ws = new WebSocket("ws://"+document.domain+":7272");

ws.onopen = function(){
var login_data = JSON.stringify({"type":"login","client_name":name,"uid":2,'username':name,'logo':23,'app_type':1});
ws.send(login_data);
};
// 当有消息时根据消息类型显示不同信息
ws.onmessage = function(e){
alert(123); /
};
ws.onclose = function() {
console.log("连接关闭,定时重连");
connect();
};
ws.onerror = function() {
console.log("出现错误");
};
}

</script>

walkor

赞同来自:

打开浏览器console自己调试下客户端吧

要回复问题请先登录注册