ホームページ Java &#&チュートリアル Spring Boot で WebSocket を使用してプッシュおよび通知機能を実装する

Spring Boot で WebSocket を使用してプッシュおよび通知機能を実装する

Jun 23, 2023 am 11:47 AM
websocket spring boot プッシュ通知

現在の Web アプリケーション開発では、WebSocket は即時通信とリアルタイム データ送信のための一般的なテクノロジです。 Spring Boot フレームワークは統合 WebSocket のサポートを提供しており、開発者がプッシュ機能や通知機能を実装するのに非常に便利です。

この記事では、WebSocket を使用して Spring Boot にプッシュ機能と通知機能を実装する方法を紹介し、シンプルなリアルタイム オンライン チャット ルームの実装を示します。

  1. Spring Boot プロジェクトの作成

まず、Spring Boot プロジェクトを作成する必要があります。 Spring Initializr Web サイト上の Web および WebSocket の依存関係を使用して、新しいプロジェクトをすばやく作成できます。コードは次のとおりです。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-websocket</artifactId>
    </dependency>
</dependencies>
ログイン後にコピー
  1. WebSocket の構成

次に、Spring Boot アプリケーションで実行できるように WebSocket を構成する必要があります。

まず、次の属性をアプリケーション構成ファイルに追加する必要があります:

spring.websocket.enabled=true
ログイン後にコピー

次に、@EnableWebSocket アノテーションを Spring Boot 構成クラスに追加して、WebSocket を有効にします。サポート。同時に、WebSocketConfigurer インターフェイスを実装し、WebSocket リクエストとメッセージを処理するためにハンドラーとメッセージ インターセプターをそのインターフェイスに登録する必要があります。

コードは次のとおりです:

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {

    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(new WebSocketHandler(), "/chat").setAllowedOrigins("*").withSockJS();
    }
}
ログイン後にコピー

上記のコードでは、クライアントが「/chat」エンドポイントに接続するときに呼び出されるハンドラー (WebSocketHandler) を登録しました。 setAllowedOrigins メソッドを使用してクロスオリジン リクエストに許可されるオリジンを指定し、withSockJS メソッドを使用して WebSocket をサポートしないブラウザとの互換性のために SockJS サポートを有効にします。

  1. WebSocket ハンドラーの作成

次に、すべての WebSocket リクエストとメッセージを処理するハンドラー クラスを作成する必要があります。

Spring Boot では、このクラスは WebSocketHandler インターフェイスを実装するだけで済みます。 WebSocket メッセージを処理するための基本機能を提供する SimpeTextWebSocketHandler クラスを使用します。これに基づいて独自のハンドラーを拡張できます。

コードは次のとおりです:

public class WebSocketHandler extends TextWebSocketHandler {

    private final List<WebSocketSession> sessions = new CopyOnWriteArrayList<>();

    @Override
    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
        sessions.add(session);
    }

    @Override
    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
        sessions.remove(session);
    }

    @Override
    protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
        for (WebSocketSession s : sessions) {
            if (s.isOpen() && !s.equals(session)) {
                s.sendMessage(message);
            }
        }
    }
}
ログイン後にコピー

上記のコードでは、新しい WebSocket セッションが確立されたときに afterConnection確立 メソッドが呼び出され、afterConnectionClosed メソッドは、新しい WebSocket セッションが確立されたときに呼び出され、セッションが閉じられたときに呼び出されます。 handleTextMessage メソッドは、すべての WebSocket メッセージを処理し、現在接続されているすべてのクライアントに送信します。

  1. WebSocket クライアントの作成

次に、実装されたプッシュおよび通知機能をテストするために WebSocket クライアントを作成する必要があります。 JavaScript の WebSocket API を使用して WebSocket クライアントを作成できます。

コードは次のとおりです:

const socket = new WebSocket('ws://localhost:8080/chat');

socket.onopen = function() {
  console.log('连接已建立');
};

socket.onmessage = function(event) {
  console.log('收到消息:', event.data);
};

socket.onerror = function(error) {
  console.log('发生错误:', error);
};

socket.onclose = function() {
  console.log('连接已关闭');
};
ログイン後にコピー

上記のコードでは、WebSocket インスタンスを作成し、ws://localhost:8080/chat への接続を試みます。次に、WebSocket イベントのオープン、クローズ、エラー、メッセージ イベントをリッスンします。

  1. プロジェクトの実行

これで、Spring Boot アプリケーションを開始して、プッシュ機能と通知機能をテストできます。 2 つ以上の WebSocket クライアントを使用して、異なるユーザーになりすまし、1 つのクライアントにメッセージを入力し、すべてのセッションで他のクライアントにメッセージをブロードキャストできます。

Maven を使用して spring-boot:run コマンドを実行し、アプリケーションを起動します。

次に、複数のブラウザ ウィンドウを開き、各ウィンドウで WebSocket クライアントを作成します。メッセージを入力して送信ボタンを押すと、チャットしているすべてのセッションの他の WebSocket クライアントにメッセージがプッシュされます。

  1. 概要

このチュートリアルでは、Spring Boot と WebSocket を使用してプッシュ機能と通知機能を実装する方法を学習しました。 WebSocket のサポートにより、ユーザー エクスペリエンスを向上させ、アプリケーションの価値を高めるリアルタイムの共同作業およびマルチキャスト アプリケーションを作成できます。

以上がSpring Boot で WebSocket を使用してプッシュおよび通知機能を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

Java と WebSocket の組み合わせ: リアルタイムのビデオ ストリーミングを実現する方法 Java と WebSocket の組み合わせ: リアルタイムのビデオ ストリーミングを実現する方法 Dec 17, 2023 pm 05:50 PM

インターネット技術の継続的な発展に伴い、リアルタイムビデオストリーミングはインターネット分野における重要なアプリケーションとなっています。リアルタイムのビデオ ストリーミングを実現するための主要なテクノロジには、WebSocket と Java が含まれます。この記事では、WebSocket と Java を使用してリアルタイムのビデオ ストリーミング再生を実装する方法を紹介し、関連するコード例を示します。 1. WebSocket とは WebSocket は、単一の TCP 接続で全二重通信を行うためのプロトコルであり、Web 上で使用されます。

PHPとWebSocketを使ってリアルタイム通信を実現する方法 PHPとWebSocketを使ってリアルタイム通信を実現する方法 Dec 17, 2023 pm 10:24 PM

インターネット技術の継続的な発展により、リアルタイム通信は日常生活に欠かせないものになりました。 WebSocket テクノロジーを使用すると、効率的で低遅延のリアルタイム通信を実現できます。また、インターネット分野で最も広く使用されている開発言語の 1 つである PHP も、対応する WebSocket サポートを提供します。この記事では、PHP と WebSocket を使用してリアルタイム通信を実現する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は単一の

golang WebSocketとJSONの組み合わせ:データ送信と解析を実現 golang WebSocketとJSONの組み合わせ:データ送信と解析を実現 Dec 17, 2023 pm 03:06 PM

golangWebSocket と JSON の組み合わせ: データ送信と解析の実現 現代の Web 開発では、リアルタイムのデータ送信がますます重要になっています。 WebSocket は双方向通信を実現するために使用されるプロトコルで、従来の HTTP リクエスト/レスポンス モデルとは異なり、WebSocket を使用すると、サーバーがクライアントにデータをアクティブにプッシュできます。 JSON (JavaScriptObjectNotation) は、簡潔で読みやすいデータ交換用の軽量形式です。

PHP と WebSocket: リアルタイム データ転送のベスト プラクティス PHP と WebSocket: リアルタイム データ転送のベスト プラクティス Dec 18, 2023 pm 02:10 PM

PHP と WebSocket: リアルタイム データ転送のベスト プラクティス方法 はじめに: Web アプリケーション開発では、リアルタイム データ転送は非常に重要な技術要件です。従来の HTTP プロトコルは要求応答モデルのプロトコルであり、リアルタイムのデータ送信を効果的に実現できません。リアルタイム データ送信のニーズを満たすために、WebSocket プロトコルが登場しました。 WebSocket は、単一の TCP 接続上で全二重通信を行う方法を提供する全二重通信プロトコルです。 Hと比べて

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

Java Websocket はオンライン ホワイトボード機能をどのように実装しますか? Java Websocket はオンライン ホワイトボード機能をどのように実装しますか? Dec 17, 2023 pm 10:58 PM

JavaWebsocket はオンライン ホワイトボード機能をどのように実装しますか?現代のインターネット時代では、人々はリアルタイムのコラボレーションと対話の経験にますます注目しています。オンラインホワイトボードは、Websocketをベースに実装された機能で、複数のユーザーがリアルタイムで共同作業して同じ描画ボードを編集し、描画や注釈などの操作を完了できるようにし、オンライン教育、リモート会議、チームコラボレーション、他のシナリオ。 1. 技術的背景 WebSocket は HTML5 で提供される新しいプロトコルです。

SSE と WebSocket SSE と WebSocket Apr 17, 2024 pm 02:18 PM

この記事では、どちらも信頼できるデータ配信方法である Server Sent Events (SSE) と WebSocket を比較します。通信方向、基盤となるプロトコル、セキュリティ、使いやすさ、パフォーマンス、メッセージ構造、使いやすさ、テストツールを含む 8 つの側面で分析します。これらの側面の比較は次のように要約されます。 カテゴリ サーバー送信イベント (SSE) WebSocket の通信方向 単方向 双方向 基礎となるプロトコル HTTP WebSocket プロトコルのセキュリティ HTTP と同じ 既存のセキュリティの脆弱性 使いやすさ セットアップが簡単 セットアップが複雑 パフォーマンスが速い メッセージ送信速度が高い メッセージ処理の影響を受けるおよび接続管理 メッセージ構造 プレーンテキストまたはバイナリ 使いやすさ 広く利用可能 WebSocket の統合に役立つ

See all articles