2015-03-31 26 views
0

節儉服務器是否有可能不反序列化消息,但它將訪問該數據,以便我可以保存並獲得以後發送? 準確地說。 我有IDL和服務,從而節儉服務器訪問未序列化的數據

void sendStructA(StructA) 

struct StructA 
{ 
    1: string string_thing, 
    4: byte byte_thing, 
    9: i32 i32_thing, 
    11: i64 i64_thing 
} 

,並有客戶端和服務器產生..服務器的接口,所以我的代碼有服務器端

void sendStructA(StructA s) 
{ 
     // do something 
} 

,但我不想型StructA的s。我需要在將它反序列化爲StructA之前捕獲該結構。即選擇TJSON協議。它應該讓我訪問該json

回答

0

是的,因爲Thrift是一個RPC和序列化框架。代碼中有幾個示例,查找「序列化程序」。基本思路是建立一個流輸送或類似的流入和流出,如shown here

你對數據做的前後處理完全取決於你。例如,您可以將數據發送到服務器,或者處理它,或者將其丟棄。

+0

我知道TSerializer類是可以的,但是很難說服務器是從協議,處理器等構建的。我發現你的舊回答在我的舊問題上非常類似:)而你的答案是TapProtocol 。準確地說。我需要客戶端和服務器之間的通信,即通過Tcp,然後服務器不應該給我非序列化的數據,但原始數據。即如果選擇TJSONProtocol。它會給我json – userbb 2015-04-01 06:21:27

+0

「*我發現你的舊回答在我的舊問題上非常相似*」=>接近重複? – JensG 2015-04-01 09:31:06

+0

我需要檢查一下。我想知道是否有解決方案使用可能的定製處理器來趕上這一點。 「Tap」聽起來像重複。我不確定它是否存在於Java中 – userbb 2015-04-01 10:04:05