如果我存多个域名在redis里面。能否在这个地方news redis()或者$connection->close();能否放在Applications\Chat\Event.php文件中处理。
$gateway->onConnect = function($connection)
{
$connection->onWebSocketConnect = function($connection , $http_header)
{
if($_SERVER != 'http://www.xxx.com'&&$_SERVER != 'http://www.aaa.com')
{
$connection->close();
}
};
};
看看Workerman手册吧,Applications\Chat\Event.php属于GatewayWorker部分,如何在Event.php中关闭某个客户端连接,看GatewayWorker手册。
手册中说的很清楚,手册中有的不要在问答中提问了
如果做了
if($_SERVER != 'http://www.xxx.com'&&$_SERVER != 'http://www.aaa.com')
{
$connection->close();
}
如果另个网站(www.yyy.com)连接 ws = new WebSocket("ws://www.xxx.com:7272");
会出现很多 client:XXX.XXX.XXX.XXX:31748 gateway:127.0.0.1:7272 client_id:7f00000108ff000000c6 onClose:''
这样会对服务器有性能有影响吗?这样的情况怎么处理呢?
影响可以忽略不计
如果IE没有关闭的话。服务器中一直无数显示
client:xxx.xxx.xxx.xxx:24096 gateway:127.0.0.1:7272 client_id:7f00000108fe00000012 onClose:''
client:xxx.xxx.xxx.xxx:24130 gateway:127.0.0.1:7272 client_id:7f00000108fe00000013 session:null onMessage:{"type":"login","client_name":"1234","room_id":"1"}
client:xxx.xxx.xxx.xxx:24096 gateway:127.0.0.1:7272 client_id:7f00000108fe00000012 onClose:''
client:xxx.xxx.xxx.xxx:24130 gateway:127.0.0.1:7272 client_id:7f00000108fe00000013 session:null onMessage:{"type":"login","client_name":"1234","room_id":"1"}
这样不会影响服务器负载吗?
什么叫无数显示?
不想看显示把打印部分注释掉就行了
就是一直重复显示。不会停下。
应该是服务端你的有代码判断当前连接域名不对,你代码调用close把链接关闭了,聊天室浏览器 js里面有判断链接关闭重连的逻辑,重连后又服务端关闭,所以会有很多onclose打印,把前端js重连部分去掉就好了
没有哦。代码是在你们官方下载。没有做过修改的。
有问题贴截图吧,描述看不出来什么问题。这么久了,聊天室demo用的人非常多,还从来没有人反馈浏览器不关不断刷onclose问题