2014-09-19 45 views
0

我使用大气框架Grails的插件,这是基本的Java和Javascript实现大气中目前所面临的一个问题,但我的问题是专门对付JS(https://github.com/Atmosphere/atmosphere-javascript大气框架断开

我打一个目前发生断线时的障碍,虽然在移动浏览器上更成为问题,但桌面浏览器有时也存在问题。我们得到一个“破碎的框架”错误,其中指出:

WebSocket connection to '{URL}' failed: Received a broken close frame containing a reserved status code. 

只要互联网因任何原因在任何设备上中断,就会发生这种情况。 Wifi,3G/4G,无论如何。似乎有点处理这个问题的唯一浏览器就是Firefox,即使是这样,也很容易理解。我们目前有一个hackjob尝试将客户端重新连接到套接字,并且它在桌面上运行得相当体面,但在移动设备上不太好。该库声明应该内置此功能,但它似乎不起作用,并且我无法在网上找到有关重新连接到由于连接中断而关闭的套接字的多处网络。

所以,最后我的问题。我想知道使用这个框架的其他人如何处理浏览器上的互联网中断,特别是Chrome,Safari和IE。任何帮助,将不胜感激。

+0

您使用哪个插件,[大气](https://grails.org/plugins/atmosphere)或[大气 - 流星](https://grails.org/plugins/atmosphere-meteor)?我是大气流星的作者,我会尽力帮助你。 – Ken 2014-09-21 09:50:54

+0

我们在jfarcand的代码中使用了带有JS/Java的Atmosphere Meteor。 到目前为止,我们已经设法解决了一些问题,但是当手机丢失wifi连接并交换3G/4G然后返回WiFi时,无法立即销毁套接字。 – Sinistralis 2014-09-21 19:36:44

+0

我们目前处于每次第二次重新连接时都会收到一个接收心跳但实际上不会传送消息的套接字的状态。 (我们怀疑之前的套接字在关闭之前就被分配了,而客户端却认为它已经连接,但是没有连接)。 – Sinistralis 2014-09-21 20:09:55

回答

1

我已将评论添加到答案中,但您应该检查this thread。这似乎与你的问题有关。

我建议在Atmosphere Group提问你的问题,因为它可能与框架有关而不是插件。我是一个业余爱好开发者,而且我没有做过太多的移动测试。它可能是底层HttpSession的问题吗?手机在网络更改中是否保留相同的JSESSIONID?你提到你必须解决几个问题。我正在寻找改进插件的方法,所以请您提供create an issue的建议。

您还可以创建一个或多个wiki pages与您的经验教训。下次更新插件时,我会将链接添加到自述文件中。

+0

我刚刚负责将我们的项目从0.7.0升级到1.0.3,我只想尽快完成并感谢您的文档。与插件兼容(不是框架,插件)很容易,花了我几分钟。保持伟大的工作。尤其是在更改contextHolder时注意如何获取配置。 – Sinistralis 2014-10-09 20:15:59