簡體   English   中英

Netty - Xml字符串的分隔符

[英]Netty - Delimiter for Xml Strings

我已經使用JAVA和Netty實現了一個TCP套接字,我可以從客戶端接收字符串。 現在我還需要接受基於XML的字符串,並且不太確定我可以使用哪種分隔符。 目前我有以下實施方案。

pipeline.addLast(new DelimiterBasedFrameDecoder(8192, Delimiters.lineDelimiter()));

有了這個,逐行讀取XML是顯而易見的。 現在我怎么能告訴Netty讀取整個XML字符串? 我正在尋找某種xmlDelimiter。 有人可以幫幫我嗎?

謝謝

這是發送方和接收方必須達成一致的協議問題。 一個真實的例子是NETCONF(用於配置網絡設備)。 NETCONF將XML用於協議操作和數據編碼,並且需要一種用於分隔單個XML消息的機制。 規范的第一個版本將字符串]]>]]>定義為分隔符。 一系列XML消息可以像這樣解釋:

<rpc message-id="1"> ... </rpc>
]]>]]>
<rpc message-id="2"> ... </rpc>
]]>]]>

后來意識到這個字符串可能合法地存在於XML屬性和注釋中,為什么規范的更高版本定義了基於長度編碼塊的完全不同的成幀機制,就像HTTP分塊機制一樣。

如果您可以控制客戶端及其生成的內容,那么基於分隔符的簡單方法(如原始的NETCONF解決方案)應該可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM