關於websocket客戶端的使用

一般情況下,使用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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章