Java 構(gòu)建websocket客戶端,構(gòu)建wss客戶端,使用wss連接,并發(fā)送數(shù)據(jù)到服務(wù)器端,接收服務(wù)器端消息文章來源:http://www.zghlxwxcb.cn/news/detail-539861.html
// 這段代碼放到方法里面就可以了
try {
TrustManager trustManager = new X509ExtendedTrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType, Socket socket) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType, Socket socket) throws CertificateException {
}
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType, SSLEngine engine) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType, SSLEngine engine) throws CertificateException {
}
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[]{};
}
};
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, new TrustManager[]{trustManager}, null);
SSLSocketFactory socketFactory = sslContext.getSocketFactory();
WebSocketClient webSocketClient = new WebSocketClient(new URI(WebsocketUrl)) {
@Override
public void onOpen(ServerHandshake serverHandshake) {
}
@Override
public void onMessage(String s) {
handleMessage(s);//回調(diào)函數(shù),在此函數(shù)內(nèi)對(duì)數(shù)據(jù)處理
}
@Override
public void onClose(int i, String s, boolean b) {
}
@Override
public void onError(Exception e) {
}
};
webSocketClient.setSocketFactory(socketFactory);
webSocketClient.connectBlocking();
ReadyState readyState = webSocketClient.getReadyState();
if (!readyState.equals(ReadyState.OPEN)) {
result.setCode(ResultCode.FAIL);
result.setResult(ImmutableMap.of("msg", "websocket連接超時(shí)"));
return result;
}
JSONObject object = new JSONObject();
String json = object.toJSONString(ssss);
//發(fā)送數(shù)據(jù)
webSocketClient.send(json);
//對(duì)數(shù)據(jù)做處理
} catch (Exception e) {
e.printStackTrace();
result.setResult(ImmutableMap.of("msg", e));
return result;
}
回調(diào)函數(shù)處理文章來源地址http://www.zghlxwxcb.cn/news/detail-539861.html
public static void handleMessage(String s) {
JSONObject jsonObject = JSON.parseObject(s);
if (jsonObject.getJSONArray("data") != null) {
// 你可以在這里存入數(shù)據(jù)庫,如果還需要咋外層進(jìn)行處理,可以定義一個(gè)全局的靜態(tài)的變量把收到的數(shù)據(jù)賦值給這個(gè)能量
} else {
logger.error("[uwb:handleMessage] :get message err");
}
}
到了這里,關(guān)于Java 構(gòu)建websocket客戶端,構(gòu)建wss客戶端,使用wss連接,并發(fā)送數(shù)據(jù)到服務(wù)器端,接收服務(wù)器端消息的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!