Socket.IO 中设置了定时器 定时器定时60s向客户端发送信息 定时器有时候会自动停止,而客户端部分会发送 载入页面时与 ws://127.0.0.1:2222/socket.io/?EIO=3&transport=websocket&sid=6e1428c5b860d641000aedfc 的连接被中断 然后一直发送get http://127.0.0.1:2222/socket.io/ 如图 不知为何
这个有的时候会发送 如图
可能是业务逻辑有些细节没处理好。截图里看不出什么问题。
我局的是定时器运行的业务代码出现致命错误了,导致进程退出重启了。
就是我定时器里面执行的代码业务有问题是吗? 服务端代码:
$sender_io = new SocketIO(2222); // 客户端发起连接事件时,设置连接socket的各种事件回调 $sender_io->on('connection', function($socket){ // 当客户端发来登录事件时触发 $socket->on('login', function ()use($socket) { global $Game; $send = $Game->start(); $socket->emit('select2m', "{$send}"); }); // 当客户端断开连接是触发(一般是关闭网页或者跳转刷新导致) $socket->on('disconnect', function () use($socket) { if (!isset($socket->uid)) { return; } }); }); $sender_io->on('workerStart', function() { Timer::add(60, function() { global $Game,$sender_io; echo "ready".date('y-m-d h:i:s',time())."\r\n"; $send = $Game->start(); $sender_io->emit('select2m', "{$send}"); echo "sendOk".date('y-m-d h:i:s',time())."\r\n"; }); });
客户端代码:
$(document).ready(function () { // 连接服务端 var socket = io('http://'+document.domain+':2222'); // 连接后登录 socket.on('connect', function(){ 。。。。。。。。 socket.on('select2m', function(online_stat){ var reg=/U/g; online_stat = online_stat.replace(reg,"<br/>"); $('#select2m').html(online_stat) var d = new Date(); var sec = d.getSeconds(); console.log(sec); });
这个有的时候会发送 如图
可能是业务逻辑有些细节没处理好。截图里看不出什么问题。
我局的是定时器运行的业务代码出现致命错误了,导致进程退出重启了。
就是我定时器里面执行的代码业务有问题是吗?
服务端代码:
客户端代码: