【问题标题】:join chat room and send/receive messages加入聊天室并发送/接收消息
【发布时间】:2014-10-31 22:36:00
【问题描述】:

我找不到手册如何加入聊天室和发送/接收消息?

我使用 Strophe + openFire。

我如何发送消息:

var o = {from : 'test2@xmpp.local/5c5d4956', to:'1@conference.xmpp.local', type : 'groupchat', xmlns : Strophe.NS.MUC};
var m = $msg(o);
m.c('body', null, 'body text'); 
connection.send(m.tree());

我如何收到:

<body xmlns='http://jabber.org/protocol/httpbind'>
<message xmlns="jabber:client" xmlns="http://jabber.org/protocol/muc" from="1@conference.xmpp.local" to="test2@xmpp.local/77ce8c0e" type="error">            <body>dfsdfsdfsd</body><error xmlns="" code="406" type="modify"><not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></message></body>

【问题讨论】:

    标签: join xmpp openfire strophe chatroom


    【解决方案1】:

    加入房间:

    var o = {to:'roomName@conference.domain.com/youNick'}; 
    var m = $pres(o); 
    m.c('x', {xmlns : 'http://jabber.org/protocol/muc#user'}, null); 
    connection.send(m.tree());
    

    或者如果需要输入密码

    var o = {to:'roomName@conference.domain.com/youNick'}; 
    var m = $pres(o); 
    m.c('x', {xmlns : 'http://jabber.org/protocol/muc#user'}, null).c('password', null, 'pass'); 
    connection.send(m.tree());
    

    在房间发送消息:

    var o = {to:'roomName@conference.domain.com', type : 'groupchat'}; 
    var m = $msg(o); m.c('body', null, 'hello'); 
    connection.send(m.tree());
    

    【讨论】:

    • 这里的重要部分是/youNick;您需要在用于加入的出席者的地址中发送昵称。
    • 如果我在同一个用户下有 2 个设备加入一个组(2 个用户,3 个设备),并且人 1 向 person2 发送消息,消息将发送到所有 3 个设备对吗?每个设备都有自己的昵称?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 2019-07-11
    相关资源
    最近更新 更多