Spring WebSocket初探1(Spring WebSocket入門チュートリアル)
4705 ワード
See more:Spring WebSocket reference全体の例はWiseMenuFrameWorkの一部であり、プロジェクト全体をクローンすることができ、友达が必要であれば、私は独立したdemoを整理することができます.
WebSocketはhtml 5がもたらす重大な特性であり、ブラウザとサービス側の間で本当に長い接続が可能になりました.この文章では、SpringのWebSocketのサポートと使用を垣間見ることができます.
きそかんきょう
Springフレームワークを迅速に構築し、Spring bootを使用します.ここではSpringBootについては議論しませんが、「Springプロジェクトを迅速に構築するワンストップソリューション」であることだけを知っていればOKです.SpringのWebSocket機能を使用するには、依存を追加する必要があります.
これでWebSocketの基本機能が簡単にオープンしました.
関連構成
WebSocketを構成します.まずWebSocketConfigクラスを追加し、グローバルな構成情報を定義し、JavaConfigの形式:WebSocketConfigを使用します.java
関連説明: を表す. を意味するサービス側受信アドレスのプレフィックスを指す.
上記の2つの方法で定義された情報は、クライアントが受信するアドレス接頭辞を定義し、クライアントが送信するアドレスを定義する接頭辞とは逆です.
これまでフレームワーク全体の構成情報が完了していましたが、以下に公告を送る例を書いて、WebSocketの魅力を示します!
バックグラウンドビジネスの作成
上記の基本構成情報があれば、基本機能を記述することができます.ここでは、まず2つの知識点を簡単に説明します. MessageMappingSpring WebSocketパッケージについては特に簡単であり、 を参照. SimpMessagingTemplate
次に、
関連説明: index()は、WebSocketクライアント送信公告機能を実現するためのページを指定し、 greeting(String value)この方法は、クライアントが仕事公告を送信するWebSocket要求を受信し、
前述のグローバル構成では、サービス側が受信した接続は
関連説明:改善されたコードはもっと簡単で、
これまで、サービス側コードCodingが完了しました!次の記事では、クライアント機能について書きます.
転送ゲート:Spring WebSocketプローブ2(Spring WebSocket入門チュートリアル)
WebSocketはhtml 5がもたらす重大な特性であり、ブラウザとサービス側の間で本当に長い接続が可能になりました.この文章では、SpringのWebSocketのサポートと使用を垣間見ることができます.
きそかんきょう
Springフレームワークを迅速に構築し、Spring bootを使用します.ここではSpringBootについては議論しませんが、「Springプロジェクトを迅速に構築するワンストップソリューション」であることだけを知っていればOKです.SpringのWebSocket機能を使用するには、依存を追加する必要があります.
org.springframework.boot
spring-boot-starter-websocket
これでWebSocketの基本機能が簡単にオープンしました.
関連構成
WebSocketを構成します.まずWebSocketConfigクラスを追加し、グローバルな構成情報を定義し、JavaConfigの形式:WebSocketConfigを使用します.java
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/socket").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/topic");
registry.setApplicationDestinationPrefixes("/app");
}
}
関連説明:
registerStompEndpoints(StompEndpointRegistry registry)
この方法の役割は、クライアントの接続を受信するためにサービス・エンド・ポイントを追加することである.registry.addEndpoint("/socket")
は、/socket
エンドポイントが追加されたことを示し、クライアントはこのエンドポイントを介して接続することができる.withSockJS()
の役割はSockJSサポートを開始することであり、configureMessageBroker(MessageBrokerRegistry config)
この方法の役割は、メッセージエージェントを定義することであり、一般的には、メッセージ接続要求を設定する様々な仕様情報である.registry.enableSimpleBroker("/topic")
は、クライアントサブスクリプションアドレスのプレフィックス情報、すなわちクライアントがサービス側メッセージを受信アドレスのプレフィックス情報(比較的回り道して、全体の例を見てみれば、だいたいわかる)registry.setApplicationDestinationPrefixes("/app")
は、クライアントがサービス側にメッセージを送信アドレスのプレフィックス上記の2つの方法で定義された情報は、クライアントが受信するアドレス接頭辞を定義し、クライアントが送信するアドレスを定義する接頭辞とは逆です.
これまでフレームワーク全体の構成情報が完了していましたが、以下に公告を送る例を書いて、WebSocketの魅力を示します!
バックグラウンドビジネスの作成
上記の基本構成情報があれば、基本機能を記述することができます.ここでは、まず2つの知識点を簡単に説明します.
@MessageMapping
に類似した注釈が提供されている.@RequestMapping
に類似した機能を有し、Controller
に存在する.メッセージの基本要求を定義する.機能も@RequestMapping
に類似しており、ワイルドカード``のurl定義をサポートするなど、詳細な使い方はAnnotation Message Handling SimpMessagingTemplate
はSpring-WebSocketに組み込まれたメッセージ送信ツールで、指定したクライアントにメッセージを送信できます.次に、
GreetingController
が新設され、@Controller
public class GreetingController {
@Resource
private SimpMessagingTemplate simpMessagingTemplate;
@RequestMapping("/helloSocket")
public String index(){
return "/hello/index";
}
@MessageMapping("/change-notice")
public void greeting(String value){
this.simpMessagingTemplate.convertAndSend("/topic/notice", value);
}
}
関連説明:
@RequestMapping
を使用しているので、httpリクエストを受信し、ページジャンプを行う.@MessageMapping
を使用する.this.simpMessagingTemplate.convertAndSend("/topic/notice", value)
この方法は公式にConvert the given Object to serialized form, possibly using a MessageConverter, wrap it as a message and send it to the given destination.
の意味で「与えられたオブジェクトをシーケンス化し、『MessageConverter』を使用してパッケージを1つのメッセージに変換し、指定されたターゲットに送信する」という意味で、一般的にはこの方法を使用してメッセージの転送送信を行います!前述のグローバル構成では、サービス側が受信した接続は
app
ヘッダであることが指定されているので、クライアントが公告を送信する要求接続は/app/change-notice
であるべきである.サービス側コードはこのように簡単で、SpringMVCを書くのと同じように、上記のgeeting(String value)
の方法では、別の注釈@SendTo
を使用して別の書き方に変えることもできます.@MessageMapping("/change-notice")
@SendTo("/topic/notice")
public String greeting(String value) {
return value;
}
関連説明:改善されたコードはもっと簡単で、
@SendTo
を重点的に理解してください.@SendTo
は、メッセージの宛先を定義する.「/app/change-notice
からのvalueを受信し、/topic/notice
クライアントにvalueを転送する./topic/notice
は、クライアントが接続を開始した後、サービス側メッセージを購読する際に指定されたアドレスであり、サービス側の戻りを受信するために使用され、後でクライアントコードを書くときに表示されます.これまで、サービス側コードCodingが完了しました!次の記事では、クライアント機能について書きます.
転送ゲート:Spring WebSocketプローブ2(Spring WebSocket入門チュートリアル)