在beep4j上作了一些修改,并且在此之上實現(xiàn)了一個基于BEEP協(xié)議的服務(wù)器框架。
BEEP協(xié)議提供了Session、Channel、Greeting、Profile、Frame等概念,這些基礎(chǔ)概念之上,很容易進行更高級的應(yīng)用層協(xié)議設(shè)計。
BEEP協(xié)議的特征和能力
長連接
對等通訊
請求\應(yīng)答式交互
在一個Session中創(chuàng)建多個獨立的傳輸通道(Channel)
在一個通道中進行多個異步請求(滑動窗口)
可以使用不同的消息編碼方式,包括二進制、文本、XML等,類似SMTP的MIME,使得可以在高效的二進制、易懂的文本之間作出選擇。
這是一個在傳輸層和應(yīng)用層之間的協(xié)議,應(yīng)用場景很廣泛,RFC標準化,官方網(wǎng)站為http://www.beepcore.org/。很多公司都有相應(yīng)的支持,包括IBM。在不同語言下都是相應(yīng)的實現(xiàn),包括C、Java、Python、Ruby、JavaScript Beep client等等。
關(guān)于ContentType和Codec
在Java程序之間通訊,前期可能不希望作更多的協(xié)議編碼、解碼工作,使用spring bean xml格式傳輸是一種方式。
在一些對效率不是特別高,又不喜歡使用機器友好的XML的場景,可以使用JSON的編碼方式。
在一些對效率要求很高的場景,ASN.1或者自定義的二進制編碼格式。
甚至使用土土的序列化編碼方式