除非我触发我的连接回调两次,否则使用 strophe attach() 而不是 connect() 不起作用
Posted
技术标签:
【中文标题】除非我触发我的连接回调两次,否则使用 strophe attach() 而不是 connect() 不起作用【英文标题】:Using strophe attach() instead of connect() doesn't work unless I trigger my connected callback twice 【发布时间】:2012-05-13 21:33:10 【问题描述】:我正在使用韵律 XMPP 服务器并尝试“使用 javascript 和 jQuery 进行专业 XMPP 编程”中的第 3 章示例。它基本上是 ping - pong 的例子,它工作正常。问题是当我尝试修改此示例以在 cookie 中存储 jid、sid 和 rid 以使用此数据在页面重新加载时调用 strophie attach() 而不是 connect()。如果我一个接一个地执行两个或多个 ping,我的示例非常有效,如果我只执行一个服务器不返回任何内容。这是我的代码:
整个Javascript代码是here
问题是当我在on_connect
函数中执行两次$(document).trigger('connected');
时,status === Strophe.Status.ATTACHED
我收到了两个 ping,并且 pong 处理程序被触发了两次。当我只触发一次 ping 时,不会调用 pong 处理程序。
提前致谢。
【问题讨论】:
【参考方案1】:当您attach()
时,您的车牌号码必须加一
在您的代码中进行此更改:
Hello.connection.attach(data.jid, data.sid, parsInt(data.rid,10)+1, Hello.on_connect);
【讨论】:
你能告诉我你的 jid 是什么你的 username@domain/somestring 或一些像 eb0c2093@192.168.2.135/eb0c2093 这样不可读的东西吗?以上是关于除非我触发我的连接回调两次,否则使用 strophe attach() 而不是 connect() 不起作用的主要内容,如果未能解决你的问题,请参考以下文章