【问题标题】:Some kind of timeout proglem with node.js / socket.io chatnode.js / socket.io 聊天的某种超时问题
【发布时间】:2013-02-25 08:49:55
【问题描述】:

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

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

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

【问题讨论】:

    标签: node.js socket.io chat


    【解决方案1】:

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

    这听起来像是您试图在没有任何客户端重新连接的情况下保持 websocket 连接打开几天?

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

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

    最好的问候

    【讨论】:

    • JanUlrich 我想我无法解释。想想你和我在 25.02.2013 - 11.29 开始聊天,如果我们是那天第一个交谈的人,我们必须为第一次连接进行 f5。认为我们在 25.02.2013 - 12.00 停止交谈并关闭我们的聊天窗口。用f5第一次连接后,每个人都可以在没有f5的情况下聊天一段时间(1天12小时15小时我不知道)当26.02.2013来临时,有一段时间没有聊天,在那之后第一个聊天的人必须让f5 再次触发某些东西。
    • 您是否已经尝试通过以下方式检查客户端的连接: [ socket.on('connect_failed', function () { /* 插入代码以重新建立连接。*/ }); ] 您可以在客户端通过 javascript 执行“f5”等效项:window.location.href = unescape(window.location.pathname);
    猜你喜欢
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    相关资源
    最近更新 更多