openfire web调用

1、websocket调用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
2、strophe调用

点对点

JID:
密码:
登录
联系人JID:
消息:

发送 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ```// XMPP服务器BOSH地址 var BOSH_SERVICE = 'http://192.168.5.165:7070/http-bind/';

// XMPP连接 var connection = null;

// 当前状态是否连接 var connected = false;

// 当前登录的JID var jid = “”;

// 连接状态改变的事件 function onConnect(status) {
console.log(status)
if (status == Strophe.Status.CONNFAIL) {
alert(“连接失败!”);
} else if (status == Strophe.Status.AUTHFAIL) {
alert(“登录失败!”);
} else if (status == Strophe.Status.DISCONNECTED) {
alert(“连接断开!”);
connected = false;
} else if (status == Strophe.Status.CONNECTED) {
alert(“连接成功,可以开始聊天了!”);
connected = true;

    // 当接收到<message>节,调用onMessage回调函数
    connection.addHandler(onMessage, null, 'message', null, null, null);

    // 首先要发送一个<presence>给服务器(initial presence)
    connection.send($pres().tree());
} }

// 接收到 function onMessage(msg) {

// 解析出<message>的from、type属性,以及body子元素
var from = msg.getAttribute('from');
var type = msg.getAttribute('type');
var elems = msg.getElementsByTagName('body');

if (type == "chat" && elems.length > 0) {
    var body = elems[0];
    $("#msg").append(from + ":<br>" + Strophe.getText(body) + "<br>")
}
return true; }

$(document).ready(function() {

// 通过BOSH连接XMPP服务器
$('#btn-login').click(function() {
    if(!connected) {
        connection = new Strophe.Connection(BOSH_SERVICE);
        connection.connect($("#input-jid").val(), $("#input-pwd").val(), onConnect);
        jid = $("#input-jid").val();
    }
});

// 发送消息
$("#btn-send").click(function() {
    if(connected) {
        if($("#input-contacts").val() == '') {
            alert("请输入联系人!");
            return;
        }

        // 创建一个<message>元素并发送
        var msg = $msg({
            to: $("#input-contacts").val(),
            from: jid,
            type: 'chat'
        }).c("body", null, $("#input-msg").val());
        connection.send(msg.tree());

        $("#msg").append(jid + ":<br>" + $("#input-msg").val() + "<br>");
        $("#input-msg").val('');
    } else {
        alert("请先登录!");
    }
}); }); ```

群聊

    <meta charset="utf-8" />
    <script src='http://cdn.bootcss.com/jquery/1.9.1/jquery.min.js'></script>
    <script src='http://cdn.bootcss.com/strophe.js/1.1.3/strophe.min.js'></script>
    <script src='test2.js' charset="utf-8"></script> </head> <body> JID:<input type="text" id="input-jid"> <br> 密码:<input type="password" id="input-pwd"> <br> <button id="btn-login">登录</button> <div id="msg" style="height: 400px; width: 400px; overflow: scroll;"></div> <br> 消息: <br> <textarea id="input-msg" cols="30" rows="4"></textarea> <br> <button id="btn-send">发送</button> </body> </html>

js:






<div class="se-preview-section-delimiter"></div>

```// XMPP服务器BOSH地址 var BOSH_SERVICE = 'http://192.168.5.165:7070/http-bind/';

// 房间JID var ROOM_JID = '2_107_7768@conference.user-20180705qv';

// XMPP连接 var connection = null;

// 当前状态是否连接 var connected = false;

// 当前登录的JID var jid = "";

// 连接状态改变的事件 function onConnect(status) {
    if (status == Strophe.Status.CONNFAIL) {
        alert("连接失败!");
    } else if (status == Strophe.Status.AUTHFAIL) {
        alert("登录失败!");
    } else if (status == Strophe.Status.DISCONNECTED) {
        alert("连接断开!");
        connected = false;
    } else if (status == Strophe.Status.CONNECTED) {
        alert("连接成功,可以开始聊天了!");
        connected = true;

        // 当接收到<message>节,调用onMessage回调函数
        connection.addHandler(onMessage, null, 'message', null, null, null);

        // 首先要发送一个<presence>给服务器(initial presence)
        connection.send($pres().tree());

        // 发送<presence>元素,加入房间
        connection.send($pres({
            from: jid,
            to: ROOM_JID + "/" + jid.substring(0,jid.indexOf("@"))
        }).c('x',{xmlns: 'http://jabber.org/protocol/muc'}).tree());
    } }

// 接收到<message> function onMessage(msg) {

    console.log(msg);
    // 解析出<message>的from、type属性,以及body子元素
    var from = msg.getAttribute('from');
    var type = msg.getAttribute('type');
    var elems = msg.getElementsByTagName('body');

    if (type == "groupchat" && elems.length > 0) {
        var body = elems[0];
        $("#msg").append(from.substring(from.indexOf('/') + 1) + ":<br>" + Strophe.getText(body) + "<br>")
    }
    return true; }

$(document).ready(function() {

    // 通过BOSH连接XMPP服务器
    $('#btn-login').click(function() {
        if(!connected) {
            connection = new Strophe.Connection(BOSH_SERVICE);
            connection.connect($("#input-jid").val(), $("#input-pwd").val(), onConnect);
            jid = $("#input-jid").val();
        }
    });

    // 发送消息
    $("#btn-send").click(function() {
        if(connected) {

            // 创建一个<message>元素并发送
            var msg = $msg({
                to: ROOM_JID,
                from: jid,
                type: 'groupchat'
            }).c("body", null, $("#input-msg").val());
            connection.send(msg.tree());

            $("#input-msg").val('');
        } else {
            alert("请先登录!");
        }
    }); });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值