相关疑难解决方法(0)

防止WebSocket中第一个收到的消息的理论丢失

服务器端的代码在连接打开后立即发送消息(它向客户端发送初始配置/问候语).

以下代码在客户端:

var sock = new WebSocket(url);
sock.addEventListener('error', processError);
sock.addEventListener('close', finish);
sock.addEventListener('message', processMessage);
Run Code Online (Sandbox Code Playgroud)

我担心从服务器丢失这个第一个配置/问候相关的消息.理论上没有什么能阻止 message设置事件处理程序之前接收它.

另一方面,实际上我从来没有想过.并且AFAIK JavaScript WebSocket API没有针对这个理论问题的对策:WebSocket 构造函数既不允许message设置事件处理程序,也不允许在挂起状态下创建WebSocket.

所以:

  1. 要么我错过了某些东西,即使在理论上也不可能用上述代码丢失消息.
  2. 或者它是JavaScript WebSocket API设计中的错误.
  3. 或者每个人都很高兴,因为消息丢失实际上是不可能的.
  4. 或者这样的行为(在连接时从服务器发送消息)被认为是不好的做法,所以没有人讨论在理论上正确实现它的可能性.

PS:这样简单但理论上的问题更适合Stack OverflowProgrammers @ Stack Exchange吗?

javascript websocket

6
推荐指数
1
解决办法
1135
查看次数

标签 统计

javascript ×1

websocket ×1