Java を使用して CMS システムのユーザー リアルタイム オンライン機能を作成する方法
Java を使用して CMS システムのユーザー リアルタイム オンライン機能を作成する方法
インターネットの急速な発展に伴い、コンテンツ管理システム (CMS) は多くの Web サイトやアプリケーションの中核になります。より良いユーザー エクスペリエンスを提供するには、リアルタイムのオンライン機能が重要なコンポーネントです。この記事では、Java を使用して CMS システムのユーザー リアルタイム オンライン機能を作成する方法を紹介し、コード例を示します。
1. 依存関係の導入
まず、Java プロジェクトの pom.xml ファイルに次の依存関係を追加します:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> </dependencies>
これにより、Spring Boot の WebSocket サポートが導入されます。
2. WebSocket の構成
Spring Boot 構成ファイル (application.properties など) に次の構成を追加します:
# WebSocket配置 spring.mvc.websocket.enabled=true spring.messages.suffix=message
これにより、WebSocket 機能が有効になり、メッセージ 接尾辞は「メッセージ」です。
3. WebSocket プロセッサの作成
WebSocket 接続とクライアントからのメッセージを処理する WebSocket プロセッサを作成します。これは、WebSocketHandler インターフェイスを実装するクラスを作成することで実現できます。
import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Component; import org.springframework.web.socket.CloseStatus; import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketHandler; import org.springframework.web.socket.WebSocketMessage; import org.springframework.web.socket.WebSocketSession; @Component public class CMSWebSocketHandler implements WebSocketHandler { private static final Map<String, WebSocketSession> SESSIONS = new HashMap<>(); // 连接建立时触发 @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { SESSIONS.put(session.getId(), session); } // 收到消息时触发(此处假设消息为用户ID) @Override public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception { String userId = message.getPayload().toString(); // 处理用户上线逻辑 // ... } // 连接关闭时触发 @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { SESSIONS.remove(session.getId()); } // 发生错误时触发 @Override public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { // 处理错误逻辑 // ... } }
上記のコードでは、静的マップを使用して、接続されているすべての WebSocket セッションを保存します。接続が確立されると、セッションはマップに追加され、接続が閉じると、セッションはマップから削除されます。 handleMessage メソッドをオーバーライドすることで、クライアントから受信したメッセージを処理できます。
4. WebSocket プロセッサーを構成する
Spring Boot 構成クラスで、WebSocket プロセッサーを構成します:
import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.config.annotation.EnableWebSocket; import org.springframework.web.socket.config.annotation.WebSocketConfigurer; import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { private final CMSWebSocketHandler cmsWebSocketHandler; public WebSocketConfig(CMSWebSocketHandler cmsWebSocketHandler) { this.cmsWebSocketHandler = cmsWebSocketHandler; } @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(cmsWebSocketHandler, "/ws").setAllowedOrigins("*"); } }
上記のコードでは、WebSocket プロセッサーを WebSocket として登録します。ハンドラーは、「/ws」パスにマップされます。 setAllowedOrigins("*") を設定することで、任意のオリジンからの WebSocket 接続を許可します。
5. フロントエンドの統合
フロントエンド ページでは、JavaScript またはその他の関連テクノロジを使用して、WebSocket を介してバックエンドとの接続を確立し、ユーザー ID を渡します。
const socket = new WebSocket("ws://localhost:8080/ws"); const userId = "12345"; socket.onopen = () => { socket.send(userId); }; socket.onclose = () => { // 连接关闭逻辑 };
上記のコードに示すように、WebSocket 接続が確立されると、ユーザー ID がソケット.send(userId) を通じて送信されます。
6. リアルタイムオンライン機能の実装
CMS システムでは、WebSocket プロセッサの afterConnectiondetached メソッドと afterConnectionClosed メソッドによってリアルタイム オンライン機能を実現できます。
// 连接建立时触发 @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { SESSIONS.put(session.getId(), session); // 用户上线逻辑 String userId = getUserIdFromSession(session); // 处理用户上线逻辑 } // 连接关闭时触发 @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { SESSIONS.remove(session.getId()); // 用户下线逻辑 String userId = getUserIdFromSession(session); // 处理用户下线逻辑 } // 辅助方法:从会话中获取用户ID private String getUserIdFromSession(WebSocketSession session) { Map<String, Object> attributes = session.getAttributes(); // 从attributes中获取用户ID // ... }
ユーザー接続が確立されたら、セッションを SESSIONS マップに配置し、セッションからユーザー ID を取得し、対応するユーザー オンライン ロジック処理を実行します。ユーザー接続が閉じられると、セッションは SESSIONS マップから削除され、対応するユーザー オフライン ロジックが処理されます。
7. 概要
この記事では、Java を使用して CMS システムのユーザー リアルタイム オンライン機能を作成する方法を紹介します。依存関係の導入、WebSocket の構成、WebSocket プロセッサの作成、およびフロントエンドの統合により、ユーザーのリアルタイム オンライン機能を実現し、対応する処理を実行できます。実際のアプリケーションでは、実際のニーズに応じてさらなる機能拡張や最適化を行うことができます。
上記は、Java を使用して CMS システムのユーザー リアルタイム オンライン機能を記述する方法についての紹介です。
以上がJava を使用して CMS システムのユーザー リアルタイム オンライン機能を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

この記事では、分散アプリケーションを構築するためのJavaのリモートメソッドの呼び出し(RMI)について説明します。 インターフェイスの定義、実装、レジストリのセットアップ、およびクライアント側の呼び出しを詳述し、ネットワークの問題やセキュリティなどの課題に対処します。

この記事では、ネットワーク通信のためのJavaのソケットAPI、クライアントサーバーのセットアップ、データ処理、リソース管理、エラー処理、セキュリティなどの重要な考慮事項をカバーしています。 また、パフォーマンスの最適化手法も調査します

この記事では、カスタムJavaネットワーキングプロトコルの作成を詳述しています。 プロトコルの定義(データ構造、フレーミング、エラー処理、バージョン化)、実装(ソケットを使用)、データシリアル化、およびベストプラクティス(効率、セキュリティ、メンテナ


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
