Strophe第一步 hello world

XMPP协议中的BOSH是 XMPP server 对外提供的可以支持 http直接访问服务器,一般是是基于长轮询的。

openfire中也提供了这个功能,默认是关闭的需要打开。



后面我们将通过http://host:7070/http-bind/地址来进行连接,这里要特别提一下,这个host,在xmpp中的 jid     即账户    比如  a@host  要保持一致,不然 连接将会失败,你可以在本机的host的配置文件上加上如果openfire在你的本机上的话

这里我将利用Strophe.js库进行连接

一下是部分核心代码

var conn = new Strophe.Connection("http://host:7070/http-bind/");

conn.connect(data.jid, data.password, function (status) {
        if (status === Strophe.Status.CONNECTED) {
            $(document).trigger('connected');
        } else if (status === Strophe.Status.DISCONNECTED) {
            $(document).trigger('disconnected');
        }
 });


$(document).bind('connected', function () {
    // inform the user
    Hello.log("Connection established.");
    Hello.connection.addHandler(Hello.handle_pong, null, "iq", null, "ping1");
    var domain = Strophe.getDomainFromJid(Hello.connection.jid);
    Hello.send_ping(domain);
});


$(document).bind('disconnected', function () {
    Hello.log("Connection terminated.");
    // remove dead connection object
    Hello.connection = null;
});

send_ping: function (to) {
        var ping = $iq({to: to, type: "get", id: "ping1"}).c("ping", {xmlns: "urn:xmpp:ping"});


        Hello.log("Sending ping to " + to + ".");


        Hello.start_time = (new Date()).getTime();
        Hello.connection.send(ping);
    },


    handle_pong: function (iq) {
        var elapsed = (new Date()).getTime() - Hello.start_time;
        Hello.log("Received pong from server in " + elapsed + "ms.");


        Hello.connection.disconnect();
        
        return false;
    }


以上很简单就是一个 ping server的过程。


已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页