我想知道基於netty來實現一個服務器的最可維護/正確的方式是什麼,它處理一堆不同的數據包類型(mmo服務器是精確的),即登錄數據包,移動數據包等。設計一個使用多種類型數據包的netty應用程序
這將是完美的最終每個數據包由POJO代表。
假設每個分組開始於唯一的,不變長度標識符: 是它更好地具有多個解碼器(我想利用ReplayingDecoder類的),或者只是一個解碼器,它代表進一步進行解碼,以其他類基於解碼的數據包ID?
任何建議和/或鏈接,將不勝感激。
我想知道基於netty來實現一個服務器的最可維護/正確的方式是什麼,它處理一堆不同的數據包類型(mmo服務器是精確的),即登錄數據包,移動數據包等。設計一個使用多種類型數據包的netty應用程序
這將是完美的最終每個數據包由POJO代表。
假設每個分組開始於唯一的,不變長度標識符: 是它更好地具有多個解碼器(我想利用ReplayingDecoder類的),或者只是一個解碼器,它代表進一步進行解碼,以其他類基於解碼的數據包ID?
任何建議和/或鏈接,將不勝感激。
我總是比較喜歡單一的解碼器,它將進一步的解碼委託給同一個解碼器類中的其他方法,或者根據解碼後的數據包類型ID將其他類解碼。在MINA中,我們有一個DemuxingIoHandler,它以內部複雜性爲代價很容易做到,但是ReplayingDecoder
通常與switch-case
一樣簡單。
這是我想到的第一個解決方案,但我想確保。我會堅持這一點 - 感謝Trustin。 – Itako
大部分時間在現場,沒有一個單一的最佳解決方案。 – johannes