STOMP協議規範

2021-09-27 09:20:33 字數 2333 閱讀 7399

原文: stomp protocol specification, version 1.2

摘要stomp是乙個簡單的可互操作的協議, 被用於通過中間伺服器在客戶端之間進行非同步訊息傳遞。它定義了一種在客戶端與服務端進行訊息傳遞的文字格式.

stomp已經被使用了很多年,並且支援很多訊息brokers和客戶端庫。這個規範定義stomp1.2協議以及對1.1版本的更新。

傳送反饋到[email protected].

概述背景

由於需要用指令碼語言如ruby,python,perl去連線企業級的訊息brokers, stomp產生了.在這種情況下,stmop實現了一些簡單的操作,比如可靠地傳送單一的訊息,然後斷開或者從目的地消費所有訊息。

stomp是除amqp開放訊息協議之外地另外乙個選擇, 實現了被用在jms brokers中特定的有線協議,比如openwire. 它僅僅是實現通用訊息操作中的一部分,並非想要覆蓋全面的訊息api.

stomp目前已經是個成熟的協議,在wire-level方面, 它提供了一些簡單的用例,但仍保持其核心設計原則:簡單性和互操作性。 ### 協議概述

stomp是基於frame的協議, 與http的frame相似.乙個frame包含乙個command,一系列可選的headersbody.stomp雖然是基於訊息但同於也允許傳遞二進位制訊息。stmop的預設訊息格式是utf-8,但是在訊息體中同樣支援其他格式編碼。

stomp伺服器就好像是一系列的目的地, 訊息會被傳送到這裡。stomp協議把目的地當作不透明的字串,其語法是服務端具體的實現。 此外stomp沒有定義目的地的交付語義是什麼。 交付,或「訊息交換」,語義的目的地可以從伺服器到伺服器,甚至從目的地到目的地。這使得伺服器有可創造性的語義,去支援stomp。

stomp client的使用者**可以充當兩個角色(可能同時): * 作為生產者,通過sendframe傳送訊息到server * 作為消費者,傳送subscribeframe到目的地並且通過messageframe從server獲取訊息。

stomp版本之間的變化

stomp 1.2 大部分向後相容1.1. 有兩點不相容的改變: * 用回車加換行符代替只用換行符結束frame * 簡化了訊息應答,用專用的header

除此之外,stomp 1.2並沒有增加新特性,而是闡述規格中的一些模糊概念,比如: * 重複的frame header條目 *content-lengthcontent-typeheaders的用法 * 必須支援servers stomp frame * 連線延遲 * 作用域,訂閱的唯一,事務的標示符 *receiptframe的含義

設計哲學

簡易性,互通性是stomp主要設計哲學.

stomp被設計成為輕量級的協議,它很容易用其他語言在client和server實現。這就意味著servers的架構沒有太多的約束,以及沒有太多的特性比如目的地命名空間,可靠的語法需要去實現。

在這份規格書裡面,注意,我們沒有明確定義的stomp 1.2 servers特性。你應該查閱stmomp servers 文件去獲得這些特性的詳細描述。

一致性rfc 2119中詳細地解釋了must,must not,required,shall,shall not,should,should not,recommended,may, 和optional這些關鍵字

為了阻止來自服務端地攻擊,保護記憶體溢位,消除平台限制,限制了不受約束的輸入。

規格中一致性的級別適用於stomp clients and stomp servers.

stomp frames

command

header1:value1

header2:value2

body^@

幀以command字串開始,以eol結束,其中包括可選回車符(13位元組),緊接著是換行符(10位元組)。command下面是0個或多個

初識STOMP協議

網上收集了一下資料彙總 一 stomp協議介紹 stomp,streaming text orientated message protocol,是流文字定向訊息協議,是一種為mom message oriented middleware,面向訊息的中介軟體 設計的簡單文字協議。它提供了乙個可互操作...

STOMP協議介紹

stomp,streaming text orientated message protocol,是流文字定向訊息協議,是一種為mom message oriented middleware,面向訊息的中介軟體 設計的簡單文字協議。它提供了乙個可互操作的連線格式,允許stomp客戶端與任意stomp...

STOMP協議介紹

stomp協議介紹 stomp,streaming text orientated message protocol,是流文字定向訊息協議,是一種為mom message oriented middleware,面向訊息的中介軟體 設計的簡單文字協議。它提供了乙個可互操作的連線格式,允許stomp客...