我正在建立一个针对移动设备的网站。我在大多数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这样的移动应用程序。
答案 0 :(得分:1)
我想我必须回答我自己的问题。
我对xmpp(openfire)的实现非常依赖于flxhr(作为一种导航CORS或跨域请求的方法)。 flxhr做的是静默地将flash对象注入DOM文档,这意味着没有安装flash插件的设备将无法处理它。
正如我们大多数人可能都知道的那样,大多数移动设备不再拥有或支持闪存。因此,使用flxhr不是一个可行的选择。
我偶然发现了这个插件OpenFire Websocket,它提供了我想要的内容。目前我仍然围绕着这件事。
测试您的OpenFire版本是否包含此插件的一种方法是将浏览器指向
[your-domain-dot-whatever]:7070 / ws(默认情况下,后缀为“ws”,但可以通过登录openfire控制面板并转到websocket选项卡进行更改。
遗憾的是,关于如何实现这一点的文档或示例很少。因此,如果有人对此有很好的参考,请分享。
干杯