vertx.io (3.0.0) websocket 不工作
vertx.io (3.0.0) websocket not working
使用 Vertx.io 版本 3.0.0 我正在尝试让网络服务器通过 websocket 与客户端通信。
这是在 Xtend 中创建 Vertx websocket 的方式 (Java)
val sockJSHandler = SockJSHandler.create(vertx);
val options = new BridgeOptions() => [
inboundPermitted = #[new PermittedOptions() => [
addressRegex = '/*'
]]
outboundPermitted = #[new PermittedOptions() => [
addressRegex = '/*'
]]
]
sockJSHandler.bridge(options, [ be |
println(be.type)
if (be.type == "SEND") {
println(be.rawMessage.getString("address"));
bus.send(be.rawMessage.getString("address"), be.rawMessage.getJsonObject("body"), [handler |
println(handler.result.body);
if(handler.succeeded){
handler.result.reply(handler.result.body);
be.complete(true);
} else {
be.complete(false)
}
return
]);
} else {
be.complete(true);
return
}
我遇到的问题是 websocket 从未收到服务器的响应。当我查看开发人员工具中的网络选项卡时,请求保持未决状态。代码以 true
到达 if(handler.succeeded)
。
我错过了什么?
在当前这种情况下,正则表达式不好,应该是 .*
而不是 /*
val options = new BridgeOptions() => [
inboundPermitted = #[new PermittedOptions() => [
addressRegex = '.*'
]]
outboundPermitted = #[new PermittedOptions() => [
addressRegex = '.*'
]]
]
这解决了问题。
请注意,vertxbus-2.1.js
收到一个错误,但什么也没做。
使用 Vertx.io 版本 3.0.0 我正在尝试让网络服务器通过 websocket 与客户端通信。
这是在 Xtend 中创建 Vertx websocket 的方式 (Java)
val sockJSHandler = SockJSHandler.create(vertx);
val options = new BridgeOptions() => [
inboundPermitted = #[new PermittedOptions() => [
addressRegex = '/*'
]]
outboundPermitted = #[new PermittedOptions() => [
addressRegex = '/*'
]]
]
sockJSHandler.bridge(options, [ be |
println(be.type)
if (be.type == "SEND") {
println(be.rawMessage.getString("address"));
bus.send(be.rawMessage.getString("address"), be.rawMessage.getJsonObject("body"), [handler |
println(handler.result.body);
if(handler.succeeded){
handler.result.reply(handler.result.body);
be.complete(true);
} else {
be.complete(false)
}
return
]);
} else {
be.complete(true);
return
}
我遇到的问题是 websocket 从未收到服务器的响应。当我查看开发人员工具中的网络选项卡时,请求保持未决状态。代码以 true
到达 if(handler.succeeded)
。
我错过了什么?
在当前这种情况下,正则表达式不好,应该是 .*
而不是 /*
val options = new BridgeOptions() => [
inboundPermitted = #[new PermittedOptions() => [
addressRegex = '.*'
]]
outboundPermitted = #[new PermittedOptions() => [
addressRegex = '.*'
]]
]
这解决了问题。
请注意,vertxbus-2.1.js
收到一个错误,但什么也没做。