2011-12-06 22 views
0

我想知道基於netty來實現一個服務器的最可維護/正確的方式是什麼,它處理一堆不同的數據包類型(mmo服務器是精確的),即登錄數據包,移動數據包等。設計一個使用多種類型數據包的netty應用程序

這將是完美的最終每個數據包由POJO代表。

假設每個分組開始於唯一的,不變長度標識符: 是它更好地具有多個解碼器(我想利用ReplayingDecoder類的),或者只是一個解碼器,它代表進一步進行解碼,以其他類基於解碼的數據包ID?

任何建議和/或鏈接,將不勝感激。

+0

大部分時間在現場,沒有一個單一的最佳解決方案。 – johannes

回答

1

我總是比較喜歡單一的解碼器,它將進一步的解碼委託給同一個解碼器類中的其他方法,或者根據解碼後的數據包類型ID將其他類解碼。在MINA中,我們有一個DemuxingIoHandler,它以內部複雜性爲代價很容易做到,但是ReplayingDecoder通常與switch-case一樣簡單。

+0

這是我想到的第一個解決方案,但我想確保。我會堅持這一點 - 感謝Trustin。 – Itako

相關問題