1

我正在建立一个用于移动设备的网站。我在大部分 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 既没有连接也没有断开。

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

4

1 回答 1

1

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

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

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

我偶然发现了这个插件OpenFire Websocket,它给出了我想要的。目前,我仍在纠结于这件事。

测试您的 OpenFire 版本是否具有此插件的一种方法是简单地将您的浏览器指向

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

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

干杯

于 2013-07-17T02:35:45.233 回答