我正在尝试开发Java客户端以与服务器上启用的WebSocket连接。
在开始实施之前,我阅读了RFC 6455 - The WebSocket Protocol - IETF Tools docx。在section 11.1和section 3中,定义如何创建URI以及URI的行为。
我的WSS URI和端口:wss://xxxxxx-xxxxxx.maindomain.com/websocket:9050
服务器配置为位于URI和端口上方,并且正在与Web客户端一起使用。但是问题出在Java客户端上。
我已经尝试过以下库:
已建立HTTP连接,并返回200。但是对于WebSocket连接,建立响应为101。然后我正在调试发生错误的位置。
在发送请求之前,请检查InetAddress.getByName(HOST_NAME)
主机是否可用。此类InetAddress
在java.net
树中。所有Java客户端库都使用此InetAddress
API进行该过程。
在我的情况下,URI是: wss://xxxxx-xxxxx.mainDomain.com/websocket
每个库仅获取请求的主机部分(xxxxx-xxxxx.mainDomain.com
)。然后它将收到200,但不会收到101,因为如果收到完整的URI(xxxxx-xxxxx.mainDomain.com/websocket
),WebSocket将建立连接。但是类InetAddress
不允许这样做。
我的问题是,在定义WebSocket URI时,我们不能使用xxxxx-xxxxx.mainDomain.com/websocket
之类的URI吗?我应该怎么做才能使它正常工作?