1. 程式人生 > >第18章 使用WebSocket和 STOMP實現訊息功能

第18章 使用WebSocket和 STOMP實現訊息功能

概述:

  1. 瀏覽器和伺服器之間傳送訊息
  2. 在SpringMVC控制器中處理訊息
  3. 為目標使用者傳送訊息

為了解決應用為web應用之間的通訊

Spring4.0 為 WebSocket通訊提供了支援 包括:

  • 傳送和接收訊息的低層級API;
  • 傳送和接收訊息的高階API;
  • 用來發送訊息的模板;
  • 支援SockJS,用來解決瀏覽器端、伺服器以及代理不支援WebSocket的問題。

1、使用Spring的低層次WebSocket API

實現介面WebSocketHandler 或者繼承AbstractWebSocketHandler

AbstractWebSocketHandler提供三個方法過載

  • handleBinaryMessage()   基於二進位制
  • handlePongMessage()  pong訊息
  • handleTextMessage()   基於文字

對處理類進行配置

@EnableWebSocket  同時實現WebSocketConfigurer介面

javascript 傳送資訊給伺服器

對於支援WebSocket的瀏覽器來說,這個型別是原生的。通過建立WebSocket例項,實際上打開了到給定URL的WebSocket。在本例中,URL使用了“ws://”字首,表明這是一個基本的WebSocket連線。如果是安全WebSocket的話,協議的字首將會是“wss://”。

WebSocket建立完畢之後,接下來的程式碼建立了WebSocket的事件處理功能。注意,WebSocket的onopen、onmessage和onclose事件對應於MarcoHandler的after-ConnectionEstablished()、handleTextMessage()和afterConnectionClosed()方法。

2、應對不支援WebSocket的場景

WebSocket瀏覽器支援不樂觀。

SockJS ,通過withSockJS()方法來使用SockJS作為備用方法

SockJS所處理的URL是“http://”或“https://”模式,而不是“ws://”和“wss://”。

3、使用STOMP訊息

STOMP在WebSocket之上提供了一個基於幀的線路格式(frame-based wireformat)層,用來定義訊息的語義。

3.1 啟用STOMP訊息功能

@EnableWebSocketMessageBroker註解能夠在WebSocket之上啟用STOMP

繼承了AbstractWebSocketMessageBrokerConfigurer

Spring 4.0引入了@MessageMapping註解,它用於STOMP訊息的處理,類似於Spring MVC的@RequestMapping註解

也提供解析轉換功能

例如;ByteArrayMessageConverter 、MappingJackson2MessageConverter、StringMessageConverter

@SubscribeMapping的主要應用場景是實現請求-迴應模式。在請求-迴應模式中,客戶端訂閱某一個目的地,然後預期在這個目的地
上獲得一個一次性的響應。

相關推薦

18-使用WebSocketSTOMP實現消息功能

control rom rup mpm 空間 except 線路 如何 cto Spring 4.0為WebSocket通信提供了支持,包括: 發送和接收消息的低層級API; 發送和接收消息的高級API; 用來發送消息的模板; 支持SockJS,用來解決瀏覽器端、服務器

18 使用WebSocket STOMP實現訊息功能

概述: 瀏覽器和伺服器之間傳送訊息在SpringMVC控制器中處理訊息為目標使用者傳送訊息為了解決應用為web應用之間的通訊 Spring4.0 為 WebSocket通訊提供了支援 包括: 傳送和接收訊息的低層級API;傳送和接收訊息的高階API;用來發送訊息的模板

Java後臺框架篇--spring websocket stomp實現訊息功能

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <html> <head> <title>Home</title> <spring:

使用spring websocket stomp實現訊息功能

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <html> <head> <title>Home</title> <spring:

spring 使用WebSocket STOMP 實現訊息功能

1)本文旨在 介紹如何 利用 WebSocket 和 STOMP 實現訊息功能; 2)要知道, WebSocket 是傳送和接收訊息的 底層API,而SockJS 是在 WebSocket 之上的 API;最後 STOMP(面向訊息的簡單文字協議)是基於 SockJS 的高

Atitit 現代資訊檢索 Atitit 重要章節 息檢索建模 檢索評價 8 文字分類 Line 210: 9 索引搜尋 11 Web檢索 13 結構化文字檢索 目錄 L

Atitit 現代資訊檢索   Atitit 重要章節 息檢索建模 檢索評價  第8章 文字分類 Line 210: 第9章 索引和搜尋 第11章 Web檢索 第13章 結構化文字檢索   目錄   Line 1

Spring 學習——基於Spring WebSocket STOMP實現簡單的聊天功能

本篇主要講解如何使用Spring websocket 和STOMP搭建一個簡單的聊天功能專案,裡面使用到的技術,如websocket和STOMP等會簡單介紹,不會太深,如果對相關介紹不是很瞭解的,請自行查閱相關知識。 本篇的專案主要是一個學習Spring we

通過WebSocketSTOMP實現瀏覽器伺服器的訊息通訊

非同步訊息非同步訊息有兩個重要的概念,訊息代理(broker)和目的地(destination)。訊息代理:當一個應用傳送訊息時,需要制定傳送的目的地,然後將訊息交給訊息代理(類似郵局),訊息代理會確保訊息傳送到指定的目的地。目的地:不同的訊息系統有不同的訊息路由模式,但是有

【Django REST framework電商專案筆記】10 購物車, 訂單支付寶支付功能(上)

購物車功能實現 在交易 trade 應用上 在商品詳情頁點選加入購物車,彈出提示框(去結算、繼續購物),右上角會新增商品到購物車 這是從後臺取出來的資料,可以顯示商品、數量、總價等資訊 新增商品,在商品數量上加一,直接更新數量即可 注意shoppingcart

【Django REST framework電商專案筆記】10 購物車, 訂單支付寶支付功能(中)

訂單管理介面實現 首先理解一下購物車和訂單之間的關係。 我們現在是做了一種最簡單的實現就是把購物車中所有商品進行一起的結算 orderInfo model 裡面有一個order_sn是不能為空的。 點選去結算之後為它生成一個訂單。然後讓使用者去支付頁面進行支付。

【Django REST framework電商專案筆記】10 購物車, 訂單支付寶支付功能(下)

Pycharm遠端除錯程式碼 第三方支付和第三方登入都有一個回撥的URl。一般指向伺服器的ip地址。 要完成能夠通過pycharm去除錯遠端的伺服器,回撥時就可以除錯程式碼。 如何將程式碼上傳到遠端伺服器 1、點選tools下的deploy點選configura

Spring使用WebSocket、SockJS、STOMP實現訊息功能

WebSocket 概述 WebSocket協議提供了通過一個套接字實現全雙工通訊的功能。除了其他的功能之外,它能夠實現Web瀏覽器和伺服器之間的非同步通訊。全雙工意味著伺服器可以傳送訊息給瀏覽器,瀏覽器也可以傳送訊息給伺服器。 使用Spring的低層級WebS

 貝葉斯分類器的推導及實現

貝葉斯分類器 1.基本的概率論知識 先驗概率:由以往的資料得到的 後驗概率:得到資訊後再重新加以修正的概率 R(ci∣x)=∑j=1NλijP(cj∣x)R(ci∣x)=∑j=1NλijP(cj∣x) 對於每個樣本 xx 選擇

Spring boot:WebSocket+SockJS+Stomp實現廣播點對點訊息傳送

筆記 廣播式 STS工具新建spring boot專案 使用Thymeleaf和Websocket依賴 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave

13 動態資料交換物件連結與嵌入

剪貼簿   在Windows作業系統中大量使用剪貼簿使使用者能夠在同一應用程式之中或不同應用程式之間傳輸資料。13.1.1 剪貼簿資料格式   當用戶選中某些資料並對它進行復制操作時,Windows把這些資料從選中區中讀出並傳送到剪貼簿上:當用戶使用貼上命令時,該資料從

11 記憶體與IO訪問之裝置IO埠I/O記憶體的訪問

11.4 裝置I/O埠和I/O記憶體的訪問    裝置通常會提供一組暫存器來控制裝置、讀寫裝置和獲取裝置狀態,即控制暫存器、資料暫存器和狀態暫存器。這些暫存器可能位於I/O空間中,也可能位於記憶體空間中。當暫存器位於I/O空間時,被稱為I/O埠;當暫存器位於記憶體空間時,對應

讀構建之法 :團隊流程

min 這樣的 程序員 希望 成員 eat 貢獻 核心 不能 團隊有一致的集體目標,團隊要一起完成這目標。一個團隊的成員不一定要同時工作,例如接力賽跑。 團隊成員有各自的分工,互相依賴合作,共同完成任務。 軟件團隊有各種形式,適用於不同的人員和需求。基於直覺形成的團隊模式未

5 IP地址子網劃分(2)_IP地址分類NAT技術

sts 端口 主機數 int 2.3 主機ip 主機 和源 找到 3. IP地址的分類 (1)五類IP地址 (2)數軸表示法 4. 保留地址 (1)網段的地址:主機ID全0。如192.168.100.0/24,其中的192.168.10.0指的是網段。 (2)廣播地

5 IP地址子網劃分(4)_超網合並網段

8.0 str ges 分析 需求 由於 子類 log spa 7. 超網合並網段 7.1 合並網段 (1)子網劃分是將一個網絡的主機位當網絡位,來劃分出多個子網。而多個網段合並成一個大網段,合並後的網段稱為超網。 (2)需求分析   某企業有一個網段,該網段有200臺計算

【HTTP權威指南】1  HTTP 概述

1.4 狀態 1.8 網關 資源 ip 地址 gen 歷史 客戶端 1.1 HTTP——因特網的多媒體信使 ...................................................................................