Strophe javascript 防止在某些延迟时断开连接

Posted

技术标签:

【中文标题】Strophe javascript 防止在某些延迟时断开连接【英文标题】:Strophe javascript prevent disconnection on some delay 【发布时间】:2010-03-15 17:47:23 【问题描述】:

我正在开发使用 Strophe 库连接到 Jabber 服务器的 javascript XMPP 应用程序。当 Strophe 连接到服务器时,我需要使用线程约 5-10 秒。线程通过运行 java 小程序来参与,在它释放线程后它会返回处理 XMPP 事件,但是目前我无法做到这一点 - 在延迟后尝试使用连接会给我 404 HTTP 错误(这是在 Strophe 向其发送带有 XMPP 消息的 POST 请求后直接由 XMPP-BOSHS 服务发送的)。我试图“暂停”与 Strophe 的 connection.pause 的连接,然后恢复它 - 没有用。是否会向服务器发送一些原始内容,也许可以告诉它客户端将在短时间内无响应?还有其他解决方案吗?

谢谢

【问题讨论】:

【参考方案1】:

如果建立连接,您通常有 30-120 秒的时间在会话超时之前发送请求。最近对 strophe 的更改修复了此处的一个错误,即它不遵守服务器发送的会话超时。

如果您的会话超时,您将收到 404。你有最后一个工作节和第一个非工作节的时间戳和节吗?有了这些,我可能会告诉你出了什么问题。

【讨论】:

感谢您的回复。这次我通过在我的应用程序中重新排序一些代码并刷新连接来解决这个问题。在此之前,我使用的是没有 .flush() 方法的旧 strophe。我一直在寻找某种“多线程”解决方案,并发现我可以使用建议的 Javascript 模式获得类似的结果——将耗时的代码分成“和平”,并从定时处理程序中定期启动它们。无论如何,我们必须等待 Web Workers 扎根:)

以上是关于Strophe javascript 防止在某些延迟时断开连接的主要内容,如果未能解决你的问题,请参考以下文章

使用 Openfire、Javascript (strophe.js) 和 html5 websockets 的聊天客户端?

XMPP:AngularJS + Strophe

javascript regex 至少需要一个字母,一个数字并防止添加某些单词

收到 Strophe.js 通知(正在撰写)

XMPP Strophe.JS 应用程序安全问题

使用 strophe 获取在线用户列表 xmpp [关闭]