【问题标题】:Get HttpServerRequest for ServerWebSocket in VertX?在 VertX 中获取 ServerWebSocket 的 HttpServerRequest?
【发布时间】:2015-02-26 20:01:58
【问题描述】:

我的问题很简单:我需要获得HttpServerRequest 在 VertX 中触发 websocket 处理程序的连接? Websocket 处理程序只为我提供了ServerWebSocket,我看不到如何获得底层的HttpServerRequest

【问题讨论】:

    标签: websocket vert.x


    【解决方案1】:
    public void hadle(ServerWebSocket serverWebSocket) { 
        MultiMap headers = serverWebSocket.headers();
    }
    

    应该这样做。

    【讨论】:

    • 一些解释会很好。目前这是在低质量队列中
    • @BillWoodger 因为这是我的第一个(并且只是暂时的)答案,我现在真的不知道如何正确安排答案,我很乐意在这里提出任何建议和/或批评。至于这个特定的答案,我不确定您所说的“一些解释”是什么意思。问题是“如何获取 WS 标头”,我提供了答案。
    • 代码与非代码以某种方式衡量,低于一些分数的帖子会自动发送到低质量队列。如果你可以包括,比如说,解释为什么这样做,或者什么时候使用它,或者其他什么。尝试在未来寻找解决方案的搜索者将受益于更多地了解它是否适​​用于他们的情况。顺便说一句,在一个不好的问题上做得很好:-)
    【解决方案2】:

    我真的不明白你想做什么。

    如果你试图建立一个 http 连接,那么你正在使用 HttpServerRequest 或者你正在使用 websocket 连接,那么你可以使用 write 方法直接写入套接字。

    所以我猜你混淆了两件事,应该决定是使用带有请求/响应的 http 连接还是带有读/写的 websocket。

    【讨论】:

    • 我需要从 开始 握手的请求中以及在打开 websocket 之前读取标头。例如,socketio 服务器也是如此。我明白你在说什么,但我没有在这里混合任何东西:)
    • 感谢您解决这个问题。因此,我认为您应该首先使用 DataHandler,使用该 DataHandler 获取请求/标头,并在处理请求后使用 ServerWebSocket 处理程序作为第二个处理程序。因此,您应该能够发送和接收 http-request,然后获取 websocket 连接的升级请求。
    猜你喜欢
    • 2020-08-15
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    相关资源
    最近更新 更多