ホームページ >Java >&#&チュートリアル >Java ネットワーク プログラミングにおける WebSocket とリアルタイム通信

Java ネットワーク プログラミングにおける WebSocket とリアルタイム通信

王林
王林オリジナル
2024-05-09 21:42:01620ブラウズ

WebSocket は、Web クライアントとサーバー間の低遅延の永続的な接続を可能にする双方向通信プロトコルで、チャットやオンライン ゲームなどのリアルタイム通信アプリケーションの構築に広く使用されています。 Java では、WebSocket API または Spring WebSocket などのサードパーティ ライブラリを使用できます。 WebSocket API を使用して接続を確立するには、HTTP 接続の確立、ハンドシェイク、WebSocket へのアップグレードの手順が必要です。一般的な使用例は、サーバー エンドポイントがサーブレットを通じてメッセージを処理し、クライアントが JavaScript WebSocket オブジェクトを通じてサーバーに接続し、メッセージを送受信できるマルチプレイヤー チャット アプリケーションの構築です。

Java 网络编程中的 WebSocket 和实时通信

Java ネットワーク プログラミングにおける WebSocket とリアルタイム通信

WebSocket は、Web クライアントとサーバー間の低遅延で永続的な接続を可能にする双方向の全二重通信プロトコルです。チャット、リアルタイム コラボレーション、オンライン ゲームなどのリアルタイム コミュニケーション アプリケーションを構築するために広く使用されています。

WebSocket プロトコルの概要

WebSocket は、HTTP ベースのプロトコル (通常は WebSocket) 上で実行されるプロトコルです。 WebSocket 接続の確立には、次の手順が含まれます:

  1. HTTP 接続の確立: クライアントは、Upgrade: websocket ヘッダーを含む HTTP GET リクエストを送信します。
  2. ハンドシェイク: サーバーは、WebSocket キーを含む 101 Switching Protocols 応答を返します。
  3. WebSocket へのアップグレード: クライアントは、WebSocket 接続にアップグレードするために、WebSocket キーを含む HTTP 応答を送信します。

Java で WebSocket を使用する

Java で WebSocket を使用するには、Java WebSocket API または Spring WebSocket などのサードパーティ ライブラリを利用できます。このセクションでは、WebSocket API の使用例について説明します。

// 创建 WebSocket 服务器端点
WebSocketServer ws = new WebSocketServer() {

    @Override
    public void onOpen(WebSocket websocket, ClientEndpointConfig cec) {
        System.out.println("客户端已连接");
    }

    @Override
    public void onMessage(String message, WebSocket websocket) {
        System.out.println("收到客户端消息:" + message);
    }

    @Override
    public void onClose(WebSocket websocket) {
        System.out.println("客户端已断开连接");
    }

    @Override
    public void onError(WebSocket websocket, Throwable cause) {
        System.err.println("WebSocket 发生错误:" + cause.getMessage());
    }
};

ws.start();
rree

実践例: チャットアプリケーション

WebSocketを使用すると、複数人でのチャットアプリケーションを簡単に構築できます。以下に例を示します:

// 创建 WebSocket 客户端端点
WebSocketClient wsClient = new WebSocketClient() {

    @Override
    public void onOpen(ServerEndpointConfig sec) {
        System.out.println("连接到服务器");
    }

    @Override
    public void onMessage(String message, Session session) {
        System.out.println("收到服务器消息:" + message);
    }

    @Override
    public void onClose(Session session, CloseReason closeReason) {
        System.out.println("连接已关闭");
    }

    @Override
    public void onError(Session session, WebSocketError error) {
        System.err.println("WebSocket 发生错误:" + error.getMessage());
    }
};

wsClient.open("ws://localhost:8080/websocket");

以上がJava ネットワーク プログラミングにおける WebSocket とリアルタイム通信の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。