在PHP中,使用Socket.IO庫可以實現實時通信
在PHP中,可以使用以下代碼實現心跳檢測:
// 創建SocketIO服務器
$io = new \Swoole\WebSocket\Server("0.0.0.0", 9501);
// 設置心跳檢測間隔(毫秒)
$heartbeatInterval = 30000;
// 設置心跳檢測超時時間(毫秒)
$heartbeatTimeout = 10000;
// 監聽心跳事件
$io->on('message', function ($frame) use ($heartbeatInterval, $heartbeatTimeout, &$io) {
if ($frame->data === 'ping') {
// 客戶端發送了“ping”,回復“pong”
$io->push($frame->fd, 'pong');
}
});
// 監聽連接關閉事件
$io->on('close', function ($fd) use (&$io) {
echo "Client {$fd} disconnected.\n";
});
// 啟動服務器
$io->start();
const socket = io('http://localhost:9501');
function reconnect() {
socket.connect(function () {
console.log('Reconnected to the server.');
});
}
// 監聽連接關閉事件
socket.on('disconnect', function () {
console.log('Disconnected from the server. Reconnecting...');
reconnect();
});
// 其他事件處理...
在這個示例中,當客戶端與服務器的連接斷開時,disconnect
事件會被觸發,然后調用reconnect
函數嘗試重新連接服務器。這個過程會不斷重復,直到客戶端成功連接到服務器。