第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WebSocket 客戶端關(guān)閉連接

WebSocket 客戶端關(guān)閉連接

回首憶惘然 2023-10-12 17:33:50
我正在嘗試用 Java 構(gòu)建一個獨立的 WebSocket 客戶端,該客戶端連接到 C# 中的 WebSocket 服務(wù)器。我正在使用為 WebSocket 服務(wù)器生成的自簽名證書。我可以使用 WSS 連接到 Chrome 瀏覽器中的 WebSocket 服務(wù)器,沒有任何問題。當(dāng)嘗試使用TooTallNate/Java-WebSocket庫時,它不起作用。連接后立即調(diào)用 OnClose 方法。我在生成的 *.pfx 文件中擁有一個自簽名證書,用于 C# 服務(wù)器并導(dǎo)入到我的受信任根存儲中。我使用 keytool 從該文件創(chuàng)建了 *.jks (我認(rèn)為我已經(jīng)正確完成了此操作)。我正在使用 keystore.jks,它是由 keytool 在我的代碼中生成的。這是我的主要方法:public static void main(String[] args) throws Exception {? ? ChatClient chatclient = new ChatClient("wss://thomas.localnetwork.com:65120/wsserver?userId=Thomas", "Thomas", "1", "1", "L");? ? // load up the key store? ? String STORETYPE = "JKS";? ? String KEYSTORE = "C:\\Users\\thomas\\Desktop\\keystore.jks";? ? String STOREPASSWORD = "test12345";? ? String KEYPASSWORD = "test";? ? KeyStore ks = KeyStore.getInstance( STORETYPE );? ? File kf = new File( KEYSTORE );? ? ks.load( new FileInputStream( kf ), STOREPASSWORD.toCharArray() );? ? KeyManagerFactory kmf = KeyManagerFactory.getInstance( "SunX509" );? ? kmf.init( ks, KEYPASSWORD.toCharArray() );? ? TrustManagerFactory tmf = TrustManagerFactory.getInstance( "SunX509" );? ? tmf.init( ks );? ? SSLContext sslContext = null;? ? sslContext = SSLContext.getInstance( "TLS" );? ? sslContext.init( kmf.getKeyManagers(), tmf.getTrustManagers(), null );? ? // sslContext.init( null, null, null ); // will use java's default key and trust store which is sufficient unless you deal with self-signed certificates? ? SSLSocketFactory factory = sslContext.getSocketFactory();// (SSLSocketFactory) SSLSocketFactory.getDefault();? ? chatclient.setSocketFactory( factory );? ? chatclient.connectBlocking();? ? BufferedReader reader = new BufferedReader( new InputStreamReader( System.in ) );? ? while ( true ) {? ? ? ? String line = reader.readLine();? ? ? ? if( line.equals( "close" ) ) {? ? ? ? ? ? chatclient.closeBlocking();? ? ? ? } else if ( line.equals( "open" ) ) {? ? ? ? ? ? chatclient.reconnect();? ? ? ? } else {? ? ? ? ? ? ucm.send( line );? ? ? ? }? ? }}有什么方法可以讓我獲得有關(guān)握手的更多詳細(xì)信息或?qū)嶋H問題是什么?異常堆棧跟蹤似乎根本沒有幫助。
查看完整描述

1 回答

?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗 獲得超11個贊

我的問題是我的本地防火墻引起了問題。我還發(fā)現(xiàn)我可以將證書安裝到 Java 的受信任根存儲中。

請注意,每個 Java 版本(JDK 和 JRE)都有自己的“cacerts”文件。請務(wù)必安裝到適合您的開發(fā)或運(yùn)行時環(huán)境的正確版本。我一直在用頭撞墻,因為它在 IntelliJ 中無法工作,直到我意識到這一點。

  1. 將證書安裝到 JVM 受信任的根存儲區(qū)

  2. 檢查是否安裝正確

  3. 刪除代碼的密鑰庫部分

這是將證書安裝到正確位置后對我的代碼的更改。

public static void main(String[] args) throws Exception {

? ? ChatClient chatclient = new ChatClient("wss://thomas.localnetwork.com:65120/wsserver?userId=Thomas", "Thomas", "1", "1", "L");


? ? chatclient.connectBlocking();


? ? BufferedReader reader = new BufferedReader( new InputStreamReader( System.in ) );

? ? while ( true ) {

? ? ? ? String line = reader.readLine();

? ? ? ? if( line.equals( "close" ) ) {

? ? ? ? ? ? chatclient.closeBlocking();

? ? ? ? } else if ( line.equals( "open" ) ) {

? ? ? ? ? ? chatclient.reconnect();

? ? ? ? } else {

? ? ? ? ? ? chatclient.send( line );

? ? ? ? }

? ? }

}


查看完整回答
反對 回復(fù) 2023-10-12
  • 1 回答
  • 0 關(guān)注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號