如何手动模拟websocket断开?我正在尝试测试websocket重新连接逻辑,除了等待浏览器10分钟的websocket超时之外,我别无选择。
发布于 2018-09-21 15:35:35
使用SockJS和Stomp:
socket = new SockJS(socketUrl);
stompClient = Stomp.over(socket); // global variable stompClient
使用以下命令关闭底层套接字:
socket.close();
触发stompClient的错误处理程序,就像连接已中断一样。
发布于 2021-07-19 12:32:02
我找到了一个解决方案来测试这一点:https://stackoverflow.com/a/59916046/2929675
在打开WebSocket连接之前,您必须执行以下脚本来修补浏览器的WebSocket函数:
const sockets = [];
const nativeWebSocket = window.WebSocket;
window.WebSocket = function(...args){
const socket = new nativeWebSocket(...args);
sockets.push(socket);
return socket;
};
现在,您可以通过套接字数组访问所有WebSocket连接。当您想要触发重新连接时,可以调用
sockets[0].close();
使用要关闭的连接的索引。
这有点老生常谈,但这是我到目前为止找到的最好的解决方案。
看起来在铬问题上也有一些进展,以在开发工具中支持这一点:https://bugs.chromium.org/p/chromium/issues/detail?id=423246
https://stackoverflow.com/questions/50394143
复制相似问题