【问题标题】:Websocket connection doesn't close in FireFoxWebsocket 连接不会在 FireFox 中关闭
【发布时间】:2011-12-18 09:14:41
【问题描述】:

尝试从 firefox (8.0.1) 关闭 websocket 连接时似乎出现问题。 使用 Chrome 时,如果您使用 WebSocket.close() 连接会立即关闭,在 Firefox 中我可以等待大约 30 秒,直到它关闭连接并出现错误。

有什么建议可以绕过 Firefox 中的这个问题吗?

【问题讨论】:

  • 加载页面时与 ws://10.0.0.1:8121/chat 的连接中断。
  • 你使用的是什么 WebSocket 服务器?

标签: javascript firefox websocket


【解决方案1】:

如果服务器不支持从 firefox 发送的握手格式,您可能会遇到该错误。我遇到了 Aleph 的错误,因为它没有正确支持握手的 Connection 标头中的多个值,这对 firefox 来说是合法的,但也与 Chrome 的行为方式不同(连接标头中只有一个值) .

如果客户端向您发送关闭消息(操作码 0x8),服务器应以关闭消息响应干净关闭。来自规范:“如果端点接收到关闭帧并且之前没有发送关闭帧,则端点必须发送关闭帧作为响应。”如果服务器出于某种原因断开客户端,则服务器应发送关闭消息。请参阅规范的5.5.17.4 部分。

【讨论】:

  • onOpen 事件被触发...所以连接是打开的
  • 什么时候会出现“页面加载中断”?是在页面加载时(如所示)还是在您尝试断开连接后?
  • 听起来可能是服务器问题。 Close 对我来说与 Firefox 8 配合得很好。您使用的是什么 WebSocket 服务器?
  • 这是我构建的一个 .net c# 服务器。当与 Firefox 的连接关闭时,也许我需要在服务器中捕获一些东西?因为在 chrome 中它工作正常......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-22
  • 2012-08-08
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多