Strophe用于移动

时间:2013-07-15 04:20:28

标签: jquery jquery-mobile xmpp strophe

我正在建立一个针对移动设备的网站。我在大多数UI / UX中使用JQuery mobile。

我目前在整合stropheJS方面遇到了困难,因此我可以在移动设备上正常运行网站。

$(document).bind('connect', function (ev, data) {
    //Groupie.connection = new Strophe.Connection('http://chat.local/http-bind');

    Groupie.connection.connect(
        data.jid, data.password,
        function (status) {
            alert('Initializing');
            if (status === Strophe.Status.CONNECTED) {
                $(".chat").hide();
                $("#inner_chat").show();
                $(document).trigger('connected');
            } else if (status === Strophe.Status.DISCONNECTED) {
                $(document).trigger('disconnected');
            }else{
                alert('Nothing Happens...');
            }
        });
});

上面是代码的简单片段,如果Strophe成功连接,它将显示聊天界面。

当我使用桌面浏览器测试上面的代码时,一切顺利。 Strophe可以登录房间,列出所有参与者,最好与其他人聊天。

然而,当我在移动设备中使用浏览器尝试时,事情会变得混乱。我总是得到“没有发生”的警告信息,表明Strophe既没有连接也没有断开连接。

有谁知道为什么会这样?如果只有像firebug这样的移动应用程序。

1 个答案:

答案 0 :(得分:1)

我想我必须回答我自己的问题。

我对xmpp(openfire)的实现非常依赖于flxhr(作为一种导航CORS或跨域请求的方法)。 flxhr做的是静默地将flash对象注入DOM文档,这意味着没有安装flash插件的设备将无法处理它。

正如我们大多数人可能都知道的那样,大多数移动设备不再拥有或支持闪存。因此,使用flxhr不是一个可行的选择。

我偶然发现了这个插件OpenFire Websocket,它提供了我想要的内容。目前我仍然围绕着这件事。

测试您的OpenFire版本是否包含此插件的一种方法是将浏览器指向

[your-domain-dot-whatever]:7070 / ws(默认情况下,后缀为“ws”,但可以通过登录openfire控制面板并转到websocket选项卡进行更改。

遗憾的是,关于如何实现这一点的文档或示例很少。因此,如果有人对此有很好的参考,请分享。

干杯