Socket.IO 中設(shè)置了定時(shí)器 定時(shí)器定時(shí)60s向客戶(hù)端發(fā)送信息 定時(shí)器有時(shí)候會(huì)自動(dòng)停止,而客戶(hù)端部分會(huì)發(fā)送 載入頁(yè)面時(shí)與 ws://127.0.0.1:2222/socket.io/?EIO=3&transport=websocket&sid=6e1428c5b860d641000aedfc 的連接被中斷
然后一直發(fā)送get http://127.0.0.1:2222/socket.io/ 如圖
不知為何
我局的是定時(shí)器運(yùn)行的業(yè)務(wù)代碼出現(xiàn)致命錯(cuò)誤了,導(dǎo)致進(jìn)程退出重啟了。
就是我定時(shí)器里面執(zhí)行的代碼業(yè)務(wù)有問(wèn)題是嗎?
服務(wù)端代碼:
$sender_io = new SocketIO(2222);
// 客戶(hù)端發(fā)起連接事件時(shí),設(shè)置連接socket的各種事件回調(diào)
$sender_io->on('connection', function($socket){
// 當(dāng)客戶(hù)端發(fā)來(lái)登錄事件時(shí)觸發(fā)
$socket->on('login', function ()use($socket) {
global $Game;
$send = $Game->start();
$socket->emit('select2m', "{$send}");
});
// 當(dāng)客戶(hù)端斷開(kāi)連接是觸發(fā)(一般是關(guān)閉網(wǎng)頁(yè)或者跳轉(zhuǎn)刷新導(dǎo)致)
$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";
});
});
客戶(hù)端代碼:
$(document).ready(function () {
// 連接服務(wù)端
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);
});