Javascript Grails事件推送插件无法响应事件
我正在尝试从events push:1.0.M7(最新发布的官方版本)移动到events push:1.0.0.BUILD-SNAPSHOT。为了获得后一个版本,我克隆了repo并在本地构建了插件。Grails插件的较新版本的假定优势在于它使用了较新版本的Atmosphere JavaScript和Java库 在自述文件中,插件引用了位于的GrailsTodos应用程序。但是,Todos应用程序中的配置和代码与其自述文件中提供的事件推送使用信息没有任何共同之处 相反,我尝试使用另一个示例来演示事件推送插件:。这是一个运行在Grails2.3.7中并使用events push:1.0.M7的应用程序。它与已发布版本(M7)的events push插件一起正常工作 以下是我为使其编译并使用事件push:1.0.0.BUILD-SNAPSHOT(我使用“grails maven安装”在本地安装)运行所做的步骤: 在BuildConfig.groovy中Javascript Grails事件推送插件无法响应事件,javascript,events,grails,plugins,atmosphere,Javascript,Events,Grails,Plugins,Atmosphere,我正在尝试从events push:1.0.M7(最新发布的官方版本)移动到events push:1.0.0.BUILD-SNAPSHOT。为了获得后一个版本,我克隆了repo并在本地构建了插件。Grails插件的较新版本的假定优势在于它使用了较新版本的Atmosphere JavaScript和Java库 在自述文件中,插件引用了位于的GrailsTodos应用程序。但是,Todos应用程序中的配置和代码与其自述文件中提供的事件推送使用信息没有任何共同之处 相反,我尝试使用另一个示例来演示事
grails.servlet.version = "3.0"
grails.tomcat.nio = true
...
dependencies {
compile 'org.grails.plugins:events:1.0.0.BUILD-SNAPSHOT'
}
plugins {
...
//compile ":events-push:1.0.M7"
compile ":events-push:1.0.0.BUILD-SNAPSHOT"
}
在MyEvents.groovy中
events = {
'bagsUpdated' namespace: 'browser', browser:true // allows browser push on this topic
}
在EventTestingController中:
def updateBags() {
Thread.sleep(3000)
event([namespace: 'browser', topic: 'bagsUpdated']) // will trigger registered browsers on 'bagsUpdated' topic
render "OK"
}
我没有更改index.gsp:
<script type="text/javascript">
try {
var grailsEvents = new grails.Events("${createLink(uri:'')}", {transport: "sse"});
grailsEvents.on('bagsUpdated', function (data) {
window.console && console.log("GOT bags!");
$("#waiting").html("Event fired!");
});
} catch (error) {
console.log("ERROR: " + error.toString());
}
$(function () {
// Call controller method that emits event when its done
$.ajax({
url: "${createLink(action:'updateBags')}",
success: function () {
console.log("Event should have been already fired...");
},
error: function () {
console.log("Ops something went wrong... ");
}
});
});
</script>
没有错误-浏览器根本不获取控制器触发的事件,这将在控制台中生成“get bags!”和“event fired!”语句
我尝试升级的应用程序表现出相同的行为-服务器端事件不会到达浏览器。我错过了什么
defer connecting topic: eventsbus grailsEvents.js:108
defer connecting topic: bagsUpdated grailsEvents.js:108
XHR finished loading: POST "http://localhost:8080/GrailsEventsPush/g-eventsbus/eventsbus?X-Atmosphere-t…sport=polling&X-Cache-Date=0&Content-Type=application/json&_=1416503898595". jquery.atmosphere.js:1691
XHR finished loading: POST "http://localhost:8080/GrailsEventsPush/g-eventsbus/eventsbus?X-Atmosphere-t…sport=polling&X-Cache-Date=0&Content-Type=application/json&_=1416503898598". jquery.atmosphere.js:1691
XHR finished loading: GET "http://localhost:8080/GrailsEventsPush/eventTesting/updateBags". jquery-1.11.0.min.js:4
Event should have been already fired... index:32