探讨Netty获取并检查Websocket握手请求的两种方式

Posted Java笔记虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了探讨Netty获取并检查Websocket握手请求的两种方式相关的知识,希望对你有一定的参考价值。

在使用Netty开发Websocket服务时,通常需要解析来自客户端请求的URL、Headers等等相关内容,并做相关检查或处理。本文将讨论两种实现方法。

方法一:基于HandshakeComplete自定义事件

特点:使用简单、校验在握手成功之后、失败信息可以通过Websocket发送回客户端。

1.1 从netty源码出发

一般地,我们将netty内置的WebSocketServerProtocolHandler作为Websocket协议的主要处理器。通过研究其代码我们了解到在本处理器被添加到PiplinehandlerAdded方法将会被调用。此方法经过简单的检查后将WebSocketHandshakeHandler添加到了本处理器之前,用于处理握手相关业务。

我们都知道Websocket协议在握手时是通过HTTP(S)协议进行的,那么这个WebSocketHandshakeHandler应该就是处理HTTP相关的数据的吧?

下方代码经过精简,放心阅读

以上是关于探讨Netty获取并检查Websocket握手请求的两种方式的主要内容,如果未能解决你的问题,请参考以下文章

Netty 4.0:检测,如果 Websocket 握手完成

如何自定义 websocket 握手和/或添加过滤器?

如何自定义websocket握手和/或添加过滤器?

用于流式服务器的 Netty 4.x.x WebSocket 握手

怎么写个socket与netty通信

如何使用 websocket 检查消息是不是真的在 Netty 中传递?