几分钟后,grails上的气氛就会挂起

时间:2014-05-20 23:23:28

标签: tomcat grails websocket atmosphere

我使用grails-events-push插件并且一切顺利,但是当系统闲置一段时间(大约3分钟)时,连接丢失并且无法与服务器重新连接。 当我刷新页面时,一切都很顺利。

这是chrome上的错误: WebSocket连接到' ws://192.168.1.109:8080 / EasyRestaurant // g-eventsbus / eventsbus?X-Atmosphere-tracking-id = 0& X-Atmosphere-Framework = 2.1.5-jquery& X-大气运输=网页套接字&安培; X-大气TrackMessageSize =真安培; X-缓存日期= 0&安培;内容类型=应用/ JSON&安培; X-ATMO协议=真'失败:收到包含保留状态代码的损坏关闭框架。

如果我尝试发送一个事件,则出现此错误后会出现另一个错误: 没有暂停连接可用。确保调用了atmosphere.subscribe并在调用此方法之前调用了request.onOpen。​​

我在tomcat中使用atmosphere-javascript-2.1.5:7.0.52.1(events-push:1.0.0.BUILD-SNAPSHOT和org.grails.plugins:events:1.0.0.BUILD-SNAPSHOT我不知道哪个版本的氛围使用grails-events-plugin。

任何人都知道问题出在哪里?它是javascript中的氛围客户端还是grails中的grails-events-push插件?是tomcat吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我在atmosphere plugin and sample app中使用了下面的两个拦截器,并且在断开连接或超时时没有任何问题。

org.atmosphere.interceptor.AtmosphereResourceLifecycleInterceptor
org.atmosphere.interceptor.HeartbeatInterceptor

我快速浏览了一下Stephane的插件代码,但我没有看到配置这些代码的简单方法。

您应该可以通过将以下编译行添加到应用程序的BuildConfig.groovy依赖项部分来尝试最新的氛围版本。我先试试。

dependencies {
    // other dependencies
    compile 'org.atmosphere:atmosphere-runtime:2.1.3'
}

您可以使用我的插件,但您必须添加自己的事件处理代码。在我的私人应用程序中,我使用Grails服务来处理发送事件和通知,并且实现起来并不困难。

相关问题