所以我有2个浏览器在运行,两个页面都在同一个页面上。在此页面中,您可以使用帐户登录服务器。
使用Strophe构建连接。一切都是HTML和javascript。
现在我已经设法建立了一个聊天(在两个浏览器之间,每个浏览器都有不同的用户登录)。这完美无缺。
我现在想要实现的是将IQ发送给另一个用户。两人都在状态栏中说他们正在接收智商(其中一个是'得到了请求'另一个是'得到了结果')
现在,我用:
创建我的iq var iq = $iq({type: 'get', to: this.receiver}).c('query', {xmlns: 'http://jabber.org/protocol/pubsub#retrieve-subscriptions'});
XmppObject.xmpp.connection.sendIQ(iq);
这是在一个可以通过按下按钮调用的功能中设置的。 监听器的构建如下:
$(XmppObject.xmpp).bind("iq", function(event, data){
addToStatus('Received an iq: \n');
handlePong(data.iq);
});
使用handlePong:
function handlePong(msg)
{
var objMsg = $(msg);
var from = objMsg.attr('from');
var type = objMsg.attr('type');
var id = objMsg.attr('id');
var text = 'Received iq from ' + from + ' with id ' + id + ' and type ' + type + '\n\n';
addToStatus(text);
}
现在,当client1向客户端2发送IQ时,结果是:
客户端1:
Received iq from client2@domain with id pingPong and type result
客户机2:
现在有没有办法在client2的状态下显示他得到了初始请求?
答案 0 :(得分:3)
您需要:
iq
,您不能简单地回收现有命名空间。它会起作用,但这是完全错误的。addHandler
。我能找到的最简单的例子是strophe插件的ping
实现,请参阅https://github.com/metajack/strophejs-plugins/blob/master/ping/strophe.ping.js