// 創(chuàng)建 WebSocket 連接
const socket = new WebSocket('ws://your-websocket-server');
// 心跳間隔(比如 30 秒)
const heartbeatInterval = 30 * 1000;
// 心跳超時(比如 60 秒)
const heartbeatTimeout = 60 * 1000;
let heartbeatIntervalId, heartbeatTimeoutId;
// 連接打開時的回調
socket.onopen = function() {
console.log('WebSocket connection established.');
// 開始心跳
startHeartbeat();
};
// 收到服務器消息的回調
socket.onmessage = function(event) {
// 如果是 ping 消息,發(fā)送 pong 消息回應
if (isPingMessage(event.data)) {
socket.send('pong');
} else {
// 處理其他消息
}
};
// 檢查心跳
function startHeartbeat() {
// 定時發(fā)送 ping 消息
heartbeatIntervalId = setInterval(function() {
socket.send('ping');
// 重置心跳超時
clearTimeout(heartbeatTimeoutId);
heartbeatTimeoutId = setTimeout(function() {
console.log('Heartbeat timeout, closing the connection.');
socket.close();
}, heartbeatTimeout);
}, heartbeatInterval);
}
// 檢查消息是否為 ping
function isPingMessage(message) {
return message === 'ping';
}
// 連接關閉時的回調
socket.onclose = function() {
console.log('WebSocket connection closed.');
// 清除心跳定時器
clearInterval(heartbeatIntervalId);
clearTimeout(heartbeatTimeoutId);
console.log("WebSocket 連接關閉遍希,重新連接...");
socket = new WebSocket('ws://your-websocket-server');
};
// 處理錯誤
socket.onerror = function(error) {
console.error('WebSocket error:', error);
};
JS websocket 心跳
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來角钩,“玉大人吝沫,你說我怎么就攤上這事⊥希” “怎么了野舶?”我有些...
- 正文 為了忘掉前任一屋,我火速辦了婚禮窘疮,結果婚禮上,老公的妹妹穿的比我還像新娘冀墨。我一直安慰自己闸衫,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布诽嘉。 她就那樣靜靜地躺著蔚出,像睡著了一般。 火紅的嫁衣襯著肌膚如雪虫腋。 梳的紋絲不亂的頭發(fā)上骄酗,一...
- 文/蒼蘭香墨 我猛地睜開眼历等,長吁一口氣:“原來是場噩夢啊……” “哼讨惩!你這毒婦竟也來了?” 一聲冷哼從身側響起寒屯,我...
- 正文 年R本政府宣布,位于F島的核電站沼溜,受9級特大地震影響平挑,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一通熄、第九天 我趴在偏房一處隱蔽的房頂上張望唆涝。 院中可真熱鬧,春花似錦唇辨、人聲如沸廊酣。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽亡驰。三九已至,卻和暖如春饿幅,著一層夾襖步出監(jiān)牢的瞬間隐解,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 簡介: websocket-heartbeat-js基于瀏覽器js原生websocket∷蠓ィ可以定時發(fā)送socket...
- Vue頁面template Vue頁面js 其他js 部分截圖 用途 即使通訊 消息通知 封裝當前頁面地址到APP...
- 1.前言 由于公司前段時間開發(fā)一個類似直播的項目痹雅,想要一端能夠控制其他端的呼入呼出,開麥閉麥等操作糊识,傳統(tǒng)的ht...
- 前言 最近關于H5和APP的開發(fā)中使用到了webSocket赂苗,由于web/app有時候會出現(xiàn)網絡不穩(wěn)定或者服務端主...
- python websocket 安裝 先來看一下愉耙,長連接調用方式: 長連接,參數(shù)介紹: 長連接關鍵方法: 如果不...