Vertx事件总线访问_denied
Vertx event bus access_denied
我有一个java vertx服务器和一个JavaScript客户端。我想在下面创建一个事件总线两次,但vertx响应:连接时收到错误:access_denied
Javascript代码:
var eventBus = new vertx.EventBus("http://localhost:8989/eventbus");
eventBus.onopen = function () {
console.log("Event bus connected !");
console.log(eventBus);
eventBus.registerHandler("http://localhost:8989/eventbus/news-feed", function (message) {
console.log("registred" + message.body());
});
Java代码:
SockJSHandler bridge = SockJSHandler.create(vertx).bridge(new BridgeOptions());
router.route("/eventbus/*").handler(bridge);
router.route().handler(StaticHandler.create());// otherwise serve static pages
HttpServer httpServer = vertx.createHttpServer();
httpServer.requestHandler(router::accept);
httpServer.listen(Servers.SERVER_PORT);
vertx.setPeriodic(1000, event -> {
vertx.eventBus().publish("news-feed", "{'"c'":'"df'"}");
你有主意吗?
问候
您需要在BridgeOptions:中设置权限
BridgeOptions options = new BridgeOptions()
.addInboundPermitted(new PermittedOptions().setAddress("news-feed"))
.addOutboundPermitted(new PermittedOptions().setAddress("news-feed"));
此外,您的Javascript代码无法注册整个地址:
eventBus.registerHandler("news-feed", ...
.addOutboundPermitted(new PermittedOptions().setAddress("news-feed"));
是必需的,并且
eb.registerHandler('news-feed', function(error, message) {
console.log('received a message: ' + JSON.stringify(message));});
回调函数有两个参数是必需的
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何访问fastOpt.js
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- 难以访问的JS环境中的语法错误
- 如何从对象的原型方法访问JavaScript对象属性
- 访问json数组中的对象
- 通过javascript/html访问twitter共享iframe
- Dojo:访问dijit.form.Select中单击的项目
- 为什么在这个网站上不能通过JS访问元素
- 从ng模板访问作用域
- 如何访问UIWebView'的子窗口上下文
- 使用Javascript获取Twitter访问令牌
- 访问jsrender模板中的全局javascript变量并更新它