我正在使用Netty库(版本4.0)在Java中编写websocket服务器。当客户端连接时,必须进行websocket握手。我使用Netty的WebSocketServerHandshaker
类来做到这一点,并通过WebSocketServerHandshakerFactory
的实例创建该类的实例。在工厂的构造函数中,第一个参数是URL。
我不明白这个参数的目的:客户端告诉服务器他们想要使用的URL,那么为什么在服务器握手中有一个URL参数?通过查看Netty的源代码,我找不到实际使用这个参数的地方,Netty的文档在这个问题上也没有多大帮助。此外,改变参数的值似乎并不影响我的程序的操作(它似乎运行得很好)。
这个参数有什么作用吗?如果是,我应该把它设置成什么?
正如我所看到的,它在这里用于设置Sec-WebSocket-Location header:
res.headers().add(SEC_WEBSOCKET_LOCATION, uri());