轉(zhuǎn)自:https://blog.csdn.net/m0_37542889/article/details/83750665
STOMP(Simple Text-Orientated Messaging Protocol) 面向消息的簡單文本協(xié)議
WebSocket是一個消息架構(gòu)熬尺,不強(qiáng)制使用任何特定的消息協(xié)議,它依賴于應(yīng)用層解釋消息的含義田巴;
與處在應(yīng)用層的HTTP不同矛洞,WebSocket處在TCP上非常薄的一層匙铡,會將字節(jié)流轉(zhuǎn)換為文本/二進(jìn)制消息愕撰,因此篡撵,對于實際應(yīng)用來說拴孤,WebSocket的通信形式層級過低逃顶,因此讨便,可以在 WebSocket 之上使用 STOMP協(xié)議,來為瀏覽器 和 server間的 通信增加適當(dāng)?shù)南⒄Z義以政。
如何理解 STOMP 與 WebSocket 的關(guān)系:
- HTTP協(xié)議解決了 web 瀏覽器發(fā)起請求以及 web 服務(wù)器響應(yīng)請求的細(xì)節(jié)霸褒,假設(shè) HTTP 協(xié)議 并不存在,只能使用 TCP 套接字來 編寫 web 應(yīng)用盈蛮,你可能認(rèn)為這是一件瘋狂的事情废菱;
- 直接使用 WebSocket(SockJS) 就很類似于 使用 TCP 套接字來編寫 web 應(yīng)用,因為沒有高層協(xié)議,就需要我們定義應(yīng)用間所發(fā)送消息的語義殊轴,還需要確保連接的兩端都能遵循這些語義衰倦;
- 同 HTTP 在 TCP 套接字上添加請求-響應(yīng)模型層一樣,STOMP 在 WebSocket 之上提供了一個基于幀的線路格式層旁理,用來定義消息語義樊零;