【问题标题】:vertx.io (3.0.0) websocket not workingvertx.io (3.0.0) websocket 不工作
【发布时间】:2015-08-04 19:53:50
【问题描述】:

使用 Vertx.io 版本 3.0.0 我正在尝试让 web 服务器通过 websocket 与客户端通信。

这是在 Xtend (Java) 中创建 Vertx websocket 的方式

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)

我错过了什么?

【问题讨论】:

    标签: websocket vert.x


    【解决方案1】:

    在当前情况下,正则表达式不好,它应该是 .* 而不是 /*

    val options = new BridgeOptions() => [
       inboundPermitted = #[new PermittedOptions() => [
            addressRegex = '.*'
        ]]
        outboundPermitted = #[new PermittedOptions() => [
            addressRegex = '.*'
        ]]
    ]
    

    这就解决了问题。

    请注意,vertxbus-2.1.js 收到了一个错误,但没有做任何处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-11
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多