排查WebSocket连接不稳定的问题

目录

背景

第1次的解决办法:添加重连机制

进一步排查分析

第2次的解决办法:添加心跳检测机制

先谈STOMP的心跳机制

项目中的心跳机制

源码分析:为什么后端禁用了心跳机制?

最终配置

开启SockJS的debug模式


背景

项目使用SockJS + Stomp实现WebSocket通讯,但是发现经常出现收不到消息的问题。

第1次的解决办法:添加重连机制

// 定时检测连接,并做重连操作
// 注意!!!:此代码为示例代码,没有考虑setInterval引发内存泄露的问题
setInterval(function() {
    if (stompClient == null || !stompClient.connected) {
        console.log("正在连接...");
        connect();
    }
}, 5000);

// 多么朴素的连接代码
function connect() {
    var socket = new SockJS('/gs-guide-websocket');
    stompClient = Stomp.over(socket);
    stompClient.connect({ }, function (frame) {
        setConnected(true);
        console.log('Connected: ' + frame);
        stompClient.subscribe('/topic/greeting

你可能感兴趣的:(【更新中...】项目中的那些事,websocket,websocket连接不稳定,问题排查)