我试图通过小型代理服务器在WebSocket的帮助下到达WebSocket Echo服务器。在这个链接的帮助下,我能够到达ws://Websocket。但是我的要求是wss://(WebSocket Secure)通过代理到达服务器。
我不能做到这一点。我谷歌,但只有得到描述性的链接,而不是一个示例代码。Stackoverflow链接也没什么用。
1) Link1
2) Link2
接下来的步骤是
1)创建一个正常的套接字,并按照这里的描述执行CONNECT到代理。
2)将socket从plain socket升级为SSLSocket
3)现在尝试在wss(443)端口上到达echo web服务器。
得到一个错误,说连接关闭,有时"普通套接字?"类异常。
请告诉我是否有人尝试过同样的方法,并将我重定向到正确的链接。
我使用nv-websocket-client库通过代理服务器成功地与wss://echo.websocket.org通信。
private static WebSocket connect() throws Exception
{
String PROXY = "http://......";
String SERVER = "wss://echo.websocket.org";
return new WebSocketFactory()
.getProxySettings()
.setServer(PROXY)
.getWebSocketFactory()
.setSSLContext(NaiveSSLContext.getInstance("TLS"))
.createSocket(SERVER)
.addListener(new WebSocketAdapter()) {
......
}
.connect();
}
参见"WebSocket客户端库(Java SE 1.5+, Android)"。