javascript 中的 Vertx eventBus 参考
Vertx eventBus reference in javascript
我是 运行 一个 spring 启动服务器,在内部集成了 vertx,如下所示
在我的 spring 引导应用程序中 class
@Bean
public Vertx vertx() {
return Vertx.vertx();
}
在我的 spring 控制器中
@RequestMapping("/")
public String home() {
EventBus eventBus = vertx.eventBus();
while (true) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
eventBus.publish("CNotifications", "message sent : {}" + message_counter++);
}
}
如何在客户端 (angular) 获取事件总线的句柄?我试过 angular-vertx 模块,如下所示
controllers.controller('indexCtrl', function ($scope, vertxBus) {
angular.element(document).ready(function () {
vertxBus.registerHandler("CNotifications", function(message) {
console.log('Received message ' + message);
});
});
});
但是报错说没有这样的函数registerHandler。我可以使用另一个 angular 顶点的包装器模块吗?或者我可以修复上面的代码以使其工作吗?我在我的 index.html
中添加了这些下面的 js
<script type="text/javascript" src="lib/vertx/sockjs.min.js"></script>
<script type="text/javascript" src="lib/vertx/vertxbus-3.1.0.js"></script>
<script type="text/javascript" src="lib/vertx/angular-vertx.min.js"></script>
你问了好几个问题..
Vert.x 在 Spring 启动
首先:如果不需要Spring开机,可以直接用Vert.x itself打开服务器。
但如果需要此设置:请查看 full working official demo using Spring Boot by Vert.x itself at GitHub。
评论element.ready
您在控制器中使用了 angular.element(document).ready
。那没有任何意义。如果控制器已被调用(由 AJS),则文档显然已经准备好一段时间了。当然,它不会破坏您的代码,但不需要它。
AngularJS插件
angular-vertx 的作者有 cancelled his work on this prototype/project.
如果您在 AngularJS 上下文中需要一个很好的包装器,我建议您看一下 我的项目 angular-vertxbus:它提供了一个可重新连接的包装器和一个方便的服务 api 和承诺支持。
我是 运行 一个 spring 启动服务器,在内部集成了 vertx,如下所示
在我的 spring 引导应用程序中 class
@Bean
public Vertx vertx() {
return Vertx.vertx();
}
在我的 spring 控制器中
@RequestMapping("/")
public String home() {
EventBus eventBus = vertx.eventBus();
while (true) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
eventBus.publish("CNotifications", "message sent : {}" + message_counter++);
}
}
如何在客户端 (angular) 获取事件总线的句柄?我试过 angular-vertx 模块,如下所示
controllers.controller('indexCtrl', function ($scope, vertxBus) {
angular.element(document).ready(function () {
vertxBus.registerHandler("CNotifications", function(message) {
console.log('Received message ' + message);
});
});
});
但是报错说没有这样的函数registerHandler。我可以使用另一个 angular 顶点的包装器模块吗?或者我可以修复上面的代码以使其工作吗?我在我的 index.html
中添加了这些下面的 js<script type="text/javascript" src="lib/vertx/sockjs.min.js"></script>
<script type="text/javascript" src="lib/vertx/vertxbus-3.1.0.js"></script>
<script type="text/javascript" src="lib/vertx/angular-vertx.min.js"></script>
你问了好几个问题..
Vert.x 在 Spring 启动
首先:如果不需要Spring开机,可以直接用Vert.x itself打开服务器。
但如果需要此设置:请查看 full working official demo using Spring Boot by Vert.x itself at GitHub。
评论element.ready
您在控制器中使用了 angular.element(document).ready
。那没有任何意义。如果控制器已被调用(由 AJS),则文档显然已经准备好一段时间了。当然,它不会破坏您的代码,但不需要它。
AngularJS插件
angular-vertx 的作者有 cancelled his work on this prototype/project.
如果您在 AngularJS 上下文中需要一个很好的包装器,我建议您看一下 我的项目 angular-vertxbus:它提供了一个可重新连接的包装器和一个方便的服务 api 和承诺支持。