首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMPP MUC如何永久地加入房间

XMPP MUC如何永久地加入房间
EN

Stack Overflow用户
提问于 2015-03-14 22:13:32
回答 1查看 1.6K关注 0票数 0

我希望XMPP房间的bot所有者能持续存在,但我总是从房间里消失,不得不重新加入。我应该怎么做才能保持我在房间里的存在?是可配置的吗?我在XEP-0045中找不到答案。

http://xmpp.org/extensions/xep-0045.html

这是我的代码:

代码语言:javascript
复制
function daemonPresence(callback) {
    var ElizaBot = require('./eliza');
    var eliza = new ElizaBot();
    var initial = eliza.getInitial();
    var XMPP = require('stanza.io');
    var administrator = 'metalaureate@' + config.get('xmpp.domain');
    var client = XMPP.createClient({
        jid: administrator, 
        password: 'password',
        transport: 'bosh',
        boshURL: config.get('xmpp.bosh_url') 

    });
    client.enableKeepAlive();

    client.on('session:started', function () {
        console.log(administrator + ' is sending presence');
       client.joinRoom("architecture@groups.xxxx.xxx", 'Daemon');
        setInterval(function () {client.sendPresence();console.log('daemon presence');},60000);

        client.on('chat', function (msg) {
            console.log(msg.body);
            var reply = eliza.transform(msg.body);
            client.sendMessage({
                to: msg.from,
                body: 'hello world' // 'You sent: ' + msg.body
            });
        });
        client.on('groupchat', function (msg) {
            console.log('group chat',  msg.body);

        });
    });
    client.on('session:end', function (result) {
        console.info("daemon session ended, restarting");
        setTimeout(function () {
            daemonPresence();
        }, 10000);
        // callback(null, result);
    });
    client.on('session:error', function (error) {
        console.err('xmpp error', error);
        callback(error, null);
    });

    client.connect();

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-17 09:05:46

这就是XEP-0045中定义的XMPP多用户聊天的本质。XMPP MUC房间是基于存在的。这意味着,您需要发送您的存在到MUC每次登录。这就是协议中定义的内容。一些客户端通过将书签实现为XML私有存储来存储一个MUC空间列表来解决此问题,客户端将自动连接到connect上,您可能想了解这一点。

XMPP标准基金会正在讨论构建一个新的MUC规范(也称为MUC 2),它不会与存在相耦合。不过,这只是暂时的讨论。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29054876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档