如何使用grails将事件从浏览器发送到服务器

时间:2014-02-11 16:12:01

标签: javascript jquery events grails

我正在尝试使用grails-2.3.5和grails事件推送插件:

https://github.com/smaldini/grails-events-push

在服务器和客户端之间来回发送事件。到目前为止,我已经设法将事件从服务器发送到客户端,从服务器发送到服务器。但我似乎无法让客户端成功向服务器发送事件。

在我的BuildConf.groovy中,我添加了:

mavenRepo "https://oss.sonatype.org/content/repositories/snapshots/"

compile ":events-push:1.0.M7"

我已将tomcat插件的版本从7.0.50更改为7.0.42,如下所述:

https://github.com/smaldini/grails-events-push/issues/55

我的接收服务的事件如下:

package sandbox

import grails.transaction.Transactional

@Transactional
class MyService {
    @grails.events.Listener
    def bagsUpdated(Map data) {
        System.out.println("Event fired")
    }
}

在我的.gsp文件中我加载了javascript:

<r:require module="grailsEvents"/>

并尝试使用以下方法触发事件:

<button onclick="grailsEvents.send('bagsUpdated', null);">Click Me</button>

无论如何,每次点击按钮都会在grails控制台上收到以下消息:

| Error 2014-02-11 07:18:16,982 [http-bio-8080-exec-3] ERROR http11.Http11Protocol  - Error reading request, ignored
Message: null
    Line | Method
->>  339 | invokeWebSocketProtocol in org.atmosphere.websocket.DefaultWebSocketProcessor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|     83 | onTextData              in org.atmosphere.container.TomcatWebSocketHandler
|   1145 | runWorker . . . . . . . in java.util.concurrent.ThreadPoolExecutor
|    615 | run                     in java.util.concurrent.ThreadPoolExecutor$Worker
^    744 | run . . . . . . . . . . in java.lang.Thread

我的javascript控制台错误如下:

08:00:13.618 The connection to ws://localhost:8080/sandbox/g-eventsbus/eventsbus?X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=1.1.0.beta3&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&X-Cache-Date=0&topics=eventsbus%2CbagsUpdated was interrupted while the page was loading. jquery.atmosphere.js:839
08:00:13.618 "Websocket closed, reason: Connection was closed abnormally (that is, with no close frame being sent)." jquery.atmosphere.js:2436
08:00:13.618 "Websocket closed, wasClean: false" jquery.atmosphere.js:2436

0 个答案:

没有答案