开发者社区> 问答> 正文

websocket的wss怎么样才可以成功连接java的SSLSocket?

需要不使用框架写出一个java服务器的socket连接, 本来ws的握手用Socket解决了,但是碰到wss卡住了,不知道方法,有没有人能提供一份websocket的wss成功握手的代码给我,只需要握手成功能够互相接收正确的数据就行了!!! 有的人联系我一下,价钱可以谈,来个大佬吧

展开
收起
成长中的技术人员 2020-12-11 17:43:25 2513 0
1 条回答
写回答
取消 提交回答
  • WebSocket正常连接http开头的链接都没什么问题,但是连接wss开头的链接IOS没有问题,安卓这边就连接不上了。通过查找资料发现需要对WebSocketClient设置setWebSocketFactory()这个方法。在new完WebSocketClient后面加入以下代码再进行连接就可以了。

    // WebSocket连接wss链接 // This part is needed in case you are going to use self-signed // certificates TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return new java.security.cert.X509Certificate[] {}; }

    				public void checkClientTrusted(X509Certificate[] chain,
    						String authType) throws CertificateException {
    				}
    
    				public void checkServerTrusted(X509Certificate[] chain,
    						String authType) throws CertificateException {
    				}
    			} };
    			SSLContext sc = SSLContext.getInstance("TLS");
    			sc.init(null, trustAllCerts, new java.security.SecureRandom());
    			// Otherwise the line below is all that is needed.
    			// sc.init(null, null, null);
    			wsc.setWebSocketFactory(new DefaultSSLWebSocketClientFactory(sc));
    
    2021-02-24 18:06:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载