我已经使用fastpath插件安装了openfire。 使用逆插件,我可以将用户重定向到工作组中的相应队列。
现在,我正在尝试将converse.js添加到具有相同功能的页面。我可以看到并与其他联系人聊天,但是当fastpath试图让我参加与相应代理的会议时(根据问题),我收到错误。
这是我的js:
converse.initialize({
bosh_service_url: 'http://chat.domain.com:7070/http-bind/',
show_controlbox_by_default: true,
allow_muc_invitations: true,
keepalive: true,
debug: true,
allow_non_roster_messaging: true,
allow_contact_requests: true,
auto_join_on_invite: true,
roster_groups: true,
jid: 'user@chat.domain.com',
password: 'password',
auto_login: true,
auto_subscribe: true
});
开:
_converse.onDirectMUCInvitation = function (message) {
var x_el = message.querySelector('x[xmlns="jabber:x:conference"]'),
from = Strophe.getBareJidFromJid(message.getAttribute('from')),
room_jid = x_el.getAttribute('jid'),
reason = x_el.getAttribute('reason');}
尽管消息包含以下内容,但x_el为空:
<message xmlns="jabber:client"
from="pjiw6d129@conference.chat.domain.com"
to="user@chat.domain.com/converse.js-60521038">
<workgroup xmlns="http://jabber.org/protocol/workgroup" jid="test@workgroup.chat.domain.com"/>
<session xmlns="http://jivesoftware.com/protocol/workgroup" id="pjiw6d129"/>
<x xmlns="http://jabber.org/protocol/muc#user">
<invite from="test@workgroup.chat.domain.com">
<reason>Please join me for a chat.</reason>
</invite>
</x>
<x xmlns="jabber:x:conference" jid="pjiw6d129@conference.chat.domain.com"/>
我遗失了一些东西但却看不到它。
感谢您的帮助!
问题出在querySelector,替换为
room_jid = x_el.getAttribute('jid'),
reason = x_el.getAttribute('reason');}
带
room_jid = message.getElementsByTagName('x')[1].getAttribute('jid'),
reason = message.getElementsByTagName('x')[0].getAttribute('reason');
在converse.js中
答案 0 :(得分:1)
Openfire的FastPath是XMPP扩展XEP-0142: Workgroup Queues的实现。据我所知,converse.js(版本3.3.2,这是我编写本文时的最新版本),不支持此扩展。