当前位置: 首页 > 知识库问答 >
问题:

如何在JavaScript中实现webSocket连接活动的ping/pong请求?[关闭]

姬俊驰
2023-03-14

注意:对不起我的英语。

共有1个答案

苏君昊
2023-03-14

此时,Heartbeat通常是在服务器端实现的:在客户端没有太多可以做的。

但是,如果服务器持续关闭您的套接字连接,而您对它没有控制,那么客户端就有可能在一个间隔内向websocket发送任意数据:

let socket = null;

function connect_socket() {
  socket = new WebSocket(ws_url);
  socket.on("close", connect_socket); // <- rise from your grave!
  heartbeat();
}

function heartbeat() {
  if (!socket) return;
  if (socket.readyState !== 1) return;
  socket.send("heartbeat");
  setTimeout(heartbeat, 500);
}

connect_socket();

我强烈建议尝试整理服务器端发生的事情,而不是试图在客户端解决它。

 类似资料:
  • 问题内容: 我在服务器中使用,因此客户端可以从服务器获取通知。 但是,似乎客户端连接到服务器后,如果客户端和服务器之间没有任何数据传输,服务器将在处返回EOF错误,这看起来像是一种超时机制。 我在Google中搜索过,看来websocket协议具有 乒乓 心跳来维持连接,我想问一下是否支持此ping协议? 如果要保持客户端与服务器之间的连接有效,该怎么办? 问题答案: 直到2013年,go.net

  • 我有一个Android应用程序,即时通讯是其中一个关键功能。为了实现IM特性,我们使用基于的推送服务器。 编辑:我曾建议使用前台服务,但下午不喜欢通知托盘总是显示在状态栏,他希望保持干净。 任何建议都将不胜感激!

  • ap.connectSocket(OPTION | url, CALLBACK) 向指定服务器发起 WebSocket 连接请求。可直接传入一个字符串作为 OPTION.url 参数。 OPTION 参数说明 名称 类型 必选 描述 url String 是 目标服务器 url data Object 否 请求的参数 headers Object 否 设置请求的头部信息 错误码说明 error 描

  • 我只能收到 如何处理

  • websocket请求头中如何带上cookie?

  • 关闭连接标志着服务器和客户端之间的通信结束。使用事件可以关闭连接,标记通信结束后,服务器和客户端之间无法进一步传输消息。由于连接不良,也可能发生事件。 方法代表再见握手。它终止连接,除非连接再次打开,否则不能交换任何数据。 与前面的示例类似,当用户单击第二个按钮时,调用方法。 也可以传递前面提到的代码和原因说明参数,如下所示。 以下代码完整概述了如何关闭或断开Web Socket连接 - 在浏览器