一般情況下,使用websocket首先要創建的是服務端,只是這裏只記錄一下項目中使用的部分,由於服務端是另外的一個項目,所以這裏只是記錄一下客戶端的一些信息。
對於websocket也是第一次接觸,有什麼遺漏和不對的地方多多指正,歡迎添磚加瓦。。。
1.配置後臺websocket
package com.huayu.config.websocket;
import lombok.extern.slf4j.Slf4j;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import java.net.URI;
@Slf4j
public class MyWebSocketClient extends WebSocketClient {
public MyWebSocketClient(URI serverUri) {
super(serverUri);
}
@Override
public void onOpen(ServerHandshake arg0) {
log.info("------ 連接成功 onOpen ------");
}
@Override
public void onClose(int arg0, String arg1, boolean arg2) {
log.info("------ 連接關閉 onClose ------{}", arg1);
}
@Override
public void onError(Exception arg0) {
log.info("------ 連接錯誤 onError ------{}", arg0);
}
@Override
public void onMessage(String arg0) {
log.info("-------- 接收到服務端數據: " + arg0 + "--------");
}
}
2.把客戶端注入到容器中,這樣可以在service直接使用
@Configuration
public class WebsocketConfig {
@Bean
public WebSocketClient webServiceClient() throws URISyntaxException {
MyWebSocketClient mWebSocketClient = new MyWebSocketClient(new URI("服務端地址"));
mWebSocketClient.connect();
return mWebSocketClient;
}
}
3.使用
@RestController
@AllArgsConstructor
@RequestMapping("/tem")
public class TempController {
/**
* WebSocketClient 不是用自己創建的MyWebsocketClient類,
* 一開始搞錯了
**/
@Autowired
private WebSocketClient webSocketClient;
@RequestMapping("/subscribe")
public String subscribe() {
webSocketClient.send(s);
return "發送訂閱成功!!!";
}
}
ps:這裏記錄的相對比較簡單,遇到的問題頁比較少,遇到的問題以後再記錄,這裏提供一個相對比較完善的大神的文章
地址:https://blog.csdn.net/weixin_38111957/article/details/86352677