如何在openfire存在时离线更改为在线?

时间:2016-01-28 12:49:33

标签: javascript angularjs xmpp openfire strophe

我正在使用XMPP创建一个信使。 我成功连接到openfire服务器。

控制台日志也收到'连接'和'连接'状态,但我检查了openfire管理控制台上的会话:

姓名:匿名
资源:一些值
节点:本地
状态:已通过身份验证 在线状态:离线

如果我使用spark客户端程序,它会将状态更改为在线状态。

我该如何改变? 我应该向线路添加更多代码吗?

var jid = 'id';
var pw = 'testpw';
var BOSH_SERVICE = 'http://127.0.0.1:7070/http-bind/';
var connection = null;

connection = new Strophe.Connection(BOSH_SERVICE);
connection.connect(jid, pw, callback);

function callback(status){
    console.log(status);
}

2 个答案:

答案 0 :(得分:3)

要声明您的状态,您必须在回调函数中添加以下行:

if (status == Strophe.Status.CONNECTED) {
    connection.send($pres());
}

如果您需要基于XMPP的Web客户端示例(使用Strophe.js),请检查下面的Plunker:

http://plnkr.co/edit/EhQHDsYpDhrECmaaIlZO

答案 1 :(得分:0)

添加了发送($ pres())

if(status === Strophe.Status.CONNECTED){
    connection.send($pres());
    console.log('connected');
}

enter image description here

可以看到连接

并未添加发送($ pres())

if(status === Strophe.Status.CONNECTED){
    console.log('connected');
}

enter image description here

可以看到连接和连接日志