0

我们从一个示例聊天文档构建了简单的 node.js socket.io 聊天。这是我们一直坚持的问题;

  • 当 A 人点击 B 人进行聊天时,它会显示“已准备好开始对话”
  • 当他们发送消息时,没有任何反应,按 Enter 键只会清除 A 和 B 人都看不到的消息。
  • 但是,如果他们同时执行 f5,它会再次显示“已准备好开始对话”,现在他们可以毫无问题地聊天了。
  • 有了这个第一个触发器,每个聊天都可以在没有 f5 的情况下进行。例如,1-5 小时后,如果 C 人点击 D 人,他们可以毫无问题地开始对话。
  • 但是,如果一天没有任何对话,那一天开始第一次对话的人必须按 f5 来触发某种触发。然后他们之后的任何人都可以毫无问题地开始。

服务器进入某种超时或屏幕保护模式..!第一次交谈的人总是必须做出 f5。然后它工作了一天。我没有发送任何代码或我们需要指导的东西。节点.js?套接字.io?什么会导致这个愚蠢的问题?谢谢

4

1 回答 1

2

但是,如果一天没有任何对话,那一天开始第一次对话的人必须按 f5 来触发某种触发。然后他们之后的任何人都可以毫无问题地开始。

这听起来像您试图保持 websocket 连接打开几天而没有任何客户端进行任何重新连接?

如果是这种情况,那么可能是客户端问题。也许浏览器在很长一段时间后关闭了 websocket 连接。您的 Web 应用程序无法识别缺少连接,但仍显示“已准备好开始对话”。但是浏览器不再向服务器发送任何消息。检查此线程:如何重新建立连接

如果您向我们展示一些代码,它将有很大帮助。

此致

于 2013-02-25T09:27:59.380 回答