国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java WebSocket客戶端

這篇具有很好參考價值的文章主要介紹了Java WebSocket客戶端。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

Java WebSocket客戶端

方式一 使用Java-WebSocket

1.依賴

<dependency>
    <groupId>org.java-websocket</groupId>
    <artifactId>Java-WebSocket</artifactId>
    <version>1.5.3</version>
</dependency>

2.代碼

import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;

import java.net.URI;
import java.net.URISyntaxException;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

/**
 * @author zhong
 */
public class MyWebSocketClient extends WebSocketClient {

    public MyWebSocketClient(URI serverUri) {
        super(serverUri);
    }

    @Override
    public void onOpen(ServerHandshake data) {
        System.out.println("WebSocket連接已打開。");
    }

    @Override
    public void onMessage(String message) {
        System.out.println("收到消息: " + message);
    }

    @Override
    public void onClose(int code, String reason, boolean remote) {
        System.out.println("WebSocket連接已關(guān)閉。");
    }

    @Override
    public void onError(Exception ex) {
        System.err.println("WebSocket連接發(fā)生錯誤:" + ex.getMessage());
    }

    /**
     * 連接定時檢查
     */
    public void startReconnectTask(long delay,
                                   TimeUnit unit) {
        System.out.println("WebSocket 心跳檢查");
        // 以下為定時器,建議使用自定義線程池,或交給框架處理(spring)
        ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
        executorService.scheduleWithFixedDelay(() -> {
            // 檢查邏輯:判斷當(dāng)前連接是否連通
            if (!this.isOpen()) {
                System.out.println("WebSocket 開始重連......");
                // 重置連接
                this.reconnect();
                // 以下為錯誤示范
                //this.close();
                //this.connect();
            }
        }, 0, delay, unit);
    }
	// 測試
    public static void main(String[] args) throws URISyntaxException {
        // 服務(wù)地址
        URI uri = new URI("ws:服務(wù)地址");
        // 創(chuàng)建客戶端
        MyWebSocketClient myWebSocketClient = new MyWebSocketClient(uri);
        // 建立連接
        myWebSocketClient.connect();
        // 開啟 定時檢查
        myWebSocketClient.startReconnectTask(5, TimeUnit.SECONDS);
    }
}

方式二 spring-boot-starter-websocket

1.依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

2.代碼

2.1 自定義 websocket handler

public class ClientWebSocketHandler implements WebSocketHandler {
    public static final Logger logger = LoggerFactory.getLogger(ClientWebSocketHandler.class);

    @Override
    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
        logger.info("客戶端連接成功:{}", session.getId());
    }

    @Override
    public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
        logger.info("客戶端接受到消息:{}", message.getPayload());
    }

    @Override
    public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
        logger.info("客戶端發(fā)送錯誤:{}", exception.getMessage());
    }

    @Override
    public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception {
        logger.info("客戶端關(guān)閉連接:{}", closeStatus.getCode());
    }

    @Override
    public boolean supportsPartialMessages() {
        return false;
    }
}

2.2 將websocket handler加入容器

@Configuration
public class WebSocketClientConfig {
    @Bean
    public WebSocketClient webSocketClient() {
        return new StandardWebSocketClient();
    }

    @Bean
    public ClientWebSocketHandler clientWebSocketHandler() {
        return new ClientWebSocketHandler();
    }

    @Bean
    public WebSocketConnectionManager connectionManager() {
        WebSocketConnectionManager connectionManager = new WebSocketConnectionManager(
                webSocketClient(),
                clientWebSocketHandler(),
                "連接地址"
        );
        connectionManager.setAutoStartup(true);
        return connectionManager;
    }
}

2.3 定時器監(jiān)控

@EnableScheduling
@SpringBootApplication
public class WebsocketClientApplication {
    @Resource
    private WebSocketConnectionManager connectionManager;

    public static void main(String[] args) {
        SpringApplication.run(WebsocketClientApplication.class, args);
    }
    @Scheduled(fixedRate = 5000)
    public void reconnectTask() {
        System.out.println("心跳檢查");
        if(!connectionManager.isConnected()){
            System.out.println("重新連接.....");
            connectionManager.stop();
            connectionManager.start();
        }
    }

}

文章來源地址http://www.zghlxwxcb.cn/news/detail-596371.html

到了這里,關(guān)于Java WebSocket客戶端的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java實(shí)現(xiàn)WebSocket客戶端和服務(wù)端(簡單版)

    Java實(shí)現(xiàn)WebSocket客戶端和服務(wù)端(簡單版)

    天行健,君子以自強(qiáng)不息;地勢坤,君子以厚德載物。 每個人都有惰性,但不斷學(xué)習(xí)是好好生活的根本,共勉! 文章均為學(xué)習(xí)整理筆記,分享記錄為主,如有錯誤請指正,共同學(xué)習(xí)進(jìn)步。 寫在前面: WebSocket是一種在單個TCP連接上進(jìn)行全雙工通信的協(xié)議。 WebSocket通信協(xié)議于

    2024年02月08日
    瀏覽(35)
  • java實(shí)現(xiàn)WebSocket客戶端&&斷線重連機(jī)制

    1、引入maven依賴(注意版本) 2、代碼

    2024年02月16日
    瀏覽(25)
  • java webSocket服務(wù)端、客戶端、心跳檢測優(yōu)雅解決

    項(xiàng)目分為三個端,項(xiàng)目之間需要webSocket通信。 WebSocketConfig WebSocketServer

    2024年02月17日
    瀏覽(19)
  • java-websocket服務(wù)端、客戶端及如何測試

    java-websocket服務(wù)端、客戶端及如何測試

    1. 導(dǎo)入依賴 2. 服務(wù)端實(shí)現(xiàn) (1)基礎(chǔ)版 (2)優(yōu)化版 對String分片轉(zhuǎn)換為Listbyte[] 3. 客戶端實(shí)現(xiàn) 4. websocket服務(wù)端測試方法 (1)自己編寫一個客戶端 ? 使用上面的java客戶端就可以直接調(diào)用測試。 (2)使用postman測試 ? postman版本需要在v8.0以上才有websocket的接口測試

    2024年02月11日
    瀏覽(22)
  • 【netty】java如何作為websocket客戶端 對服務(wù)端發(fā)起請求

    【netty】java如何作為websocket客戶端 對服務(wù)端發(fā)起請求

    是的 本文介紹java如何作為客戶端 發(fā)起websocket請求 博主不做標(biāo)題黨 不會服務(wù)端客戶端分不清就寫個標(biāo)題 亂寫文章 為什么會使用java作為websocket客戶端? 雖說websocket協(xié)議 本意是web與服務(wù)端之間的通訊協(xié)議,那假設(shè)有一天 我們的供應(yīng)商 或者是甲方大爺 只提供了websocket接口呢?

    2024年02月05日
    瀏覽(17)
  • 【Java】SpringBoot快速整合WebSocket實(shí)現(xiàn)客戶端服務(wù)端相互推送信息

    【Java】SpringBoot快速整合WebSocket實(shí)現(xiàn)客戶端服務(wù)端相互推送信息

    目錄 什么是webSocket? webSocket可以用來做什么? WebSocket操作類 一:測試客戶端向服務(wù)端推送消息 1.啟動SpringBoot項(xiàng)目 2.打開網(wǎng)站 3.進(jìn)行測試消息推送 4.后端進(jìn)行查看測試結(jié)果 二:測試服務(wù)端向客戶端推送消息 1.接口代碼 2.使用postman進(jìn)行調(diào)用 3.查看測試結(jié)果 ????????WebSocke

    2024年01月20日
    瀏覽(37)
  • Java:SpringBoot整合WebSocket實(shí)現(xiàn)服務(wù)端向客戶端推送消息

    Java:SpringBoot整合WebSocket實(shí)現(xiàn)服務(wù)端向客戶端推送消息

    思路: 后端通過websocket向前端推送消息,前端統(tǒng)一使用http協(xié)議接口向后端發(fā)送數(shù)據(jù) 本文僅放一部分重要的代碼,完整代碼可參看github倉庫 websocket 前端測試 :http://www.easyswoole.com/wstool.html 依賴 項(xiàng)目目錄 完整依賴 配置 WebSocketServer.java 前端頁面 websocket.html 前端邏輯 index.js 參

    2024年02月04日
    瀏覽(29)
  • java后端使用websocket實(shí)現(xiàn)與客戶端之間接收及發(fā)送消息

    客戶端請求websocket接口,連接通道=》我這邊業(yè)務(wù)成功客戶端發(fā)消息=》客戶端自動刷新。 接口:ws://localhost:8080/websocket/xx 經(jīng)測試,成功 如果是線上服務(wù)器連接,則需要在nginx里配置websocket相關(guān)內(nèi)容,再重啟nginx,代碼如下 本地連接的時候用的是ws://,因?yàn)槭莌ttp鏈接,但是如果是

    2024年02月16日
    瀏覽(26)
  • 做個小工具-WebSocket客戶端

    做個小工具-WebSocket客戶端

    由于工作的原因經(jīng)常需要用到一些socket,串口等調(diào)試工具,但是好多工具要么只有其中幾個或者各種收費(fèi),不斷提醒捐助等。所以還是自己做一個吧。畢竟也不復(fù)雜。今天先做個WebSocket客戶端。WebSocket使用了開源組件WatsonWebsocket。 先上圖 View的代碼 ViewModel的代碼 servervice的代

    2024年02月15日
    瀏覽(21)
  • Java 構(gòu)建websocket客戶端,構(gòu)建wss客戶端,使用wss連接,并發(fā)送數(shù)據(jù)到服務(wù)器端,接收服務(wù)器端消息

    Java 構(gòu)建websocket客戶端,構(gòu)建wss客戶端,使用wss連接,并發(fā)送數(shù)據(jù)到服務(wù)器端,接收服務(wù)器端消息 回調(diào)函數(shù)處理

    2024年02月13日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包