Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Grails大气插件浏览器在几次请求后挂起_Java_Grails_Atmosphere - Fatal编程技术网

Java Grails大气插件浏览器在几次请求后挂起

Java Grails大气插件浏览器在几次请求后挂起,java,grails,atmosphere,Java,Grails,Atmosphere,使用grails中的atmosphere插件,在向服务器发出几次请求之后(经过几页导航之后),浏览器不会呈现任何页面,只是在加载。其他系统中的其他浏览器工作正常。连接到服务器的代码放置在公共布局页面中。 服务器代码: def onRequest = { event -> def userBroadcasters= ServletContextHolder.servletContext.getAttribute('userBroadcasters') def uid=even

使用grails中的atmosphere插件,在向服务器发出几次请求之后(经过几页导航之后),浏览器不会呈现任何页面,只是在加载。其他系统中的其他浏览器工作正常。连接到服务器的代码放置在公共布局页面中。 服务器代码:

def onRequest = { event ->
    def userBroadcasters= ServletContextHolder.servletContext.getAttribute('userBroadcasters')
    def uid=event.getRequest().session.user?.id
    if(!userBroadcasters){
        userBroadcasters=[:]
    }
    Broadcaster privateChannel = BroadcasterFactory.getDefault().lookup("/userChannel"+uid, true);
    privateChannel.addAtmosphereResource(event)
    userBroadcasters.put(uid,privateChannel)
    ServletContextHolder.servletContext.setAttribute('userBroadcasters',userBroadcasters)
    event.suspend()
    //println ServletContextHolder.servletContext.getAttribute('userBroadcasters')
    //println "Inside onRequest!"
}
通用布局中的客户端代码:

function callback(response) {
            if (response.status == 200 && response.responseBody.length > 0) {
               //action
            }
        }

        var location = '${request.contextPath}/atmosphere/mx';
        var request = {transport: "streaming", fallbackTransport: 'long-polling', contentType: "application/json",connectTimeout:4000};
        $.atmosphere.subscribe(location, callback, request);