[Java]webSokcet Server
一般程式應用(jar)
參考
https://github.com/TooTallNate/Java-WebSocket/blob/master/src/main/example/
POM部分
<dependencies>
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.5.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
</dependency>
</dependencies>
程式部分
public class SSLServerExample {
//該伺服器已申請SSL
//並產出jks文件
//2020-11-4測試成功
public void start() throws Exception {
//centOS port 盡量用10000以外 避免用到有些特殊使用的port
//防火牆記得要打開
ChatServer chatserver = new ChatServer(
30001); // Firefox does allow multible ssl connection only via port 443 //tested on FF16
// load up the key store
String STORETYPE = "JKS";
// String KEYSTORE = Paths.get("src", "test", "java", "keystore.jks").toString(); //測試使用路徑
String KEYSTORE = "/etc/httpd/conf/ssl/keystore.jks";//CentOS 路徑
String STOREPASSWORD = "密碼";
String KEYPASSWORD = "密碼";
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);
chatserver.setWebSocketFactory(new DefaultSSLWebSocketServerFactory(sslContext));
chatserver.start();
}
}
測試
www.websocket.org/echo.html
留言
張貼留言