使用strophe attach()而不是connect()不起作用,除非我触发两次连接的回调

时间:2012-05-13 21:33:10

标签: javascript xmpp strophe

我正在使用韵律XMPP服务器并尝试使用“使用JavaScript和jQuery进行专业XMPP编程”的第3章示例。它基本上是乒乓球的例子,它工作正常。问题是当我尝试修改此示例以存储jid,sid和rid内部cookie以使用此数据在页面重新加载时调用strophie attach()而不是connect()。如果我一个接一个地做两个或更多ping,我的例子很有效,如果我只做一个服务器不返回任何东西。这是我的代码:

整个Javascript代码为here

问题是我在$(document).trigger('connected');函数on_connect执行status === Strophe.Status.ATTACHED两次{{1}}我发送了两个ping并且pong处理程序被trigerred两次。当我只触发ping一次时,pong处理程序不会被调用。

提前致谢。

1 个答案:

答案 0 :(得分:2)

当你attach()时,你的摆脱号码必须加一 在您的代码中进行此更改:

Hello.connection.attach(data.jid, data.sid, parsInt(data.rid,10)+1, Hello.on_connect);