私は最近、ライブラリkryonetを発見しました。これは非常に素晴らしく、私のニーズに非常によく適合しています。
しかし、私が抱えている問題の1つは、転送可能なすべてのクラスを登録するための優れた戦略を開発することです。
使用するすべてのクラスのリストを返す静的メソッドを各オブジェクトに記述できることは知っていますが、実際にはそうする必要はありません(私自身の時間の目的と、これらのオブジェクトを拡張します)。
オブジェクトが参照するすべてのクラス(フィールドと継承)をgetClass()メソッドから取得する方法があるかどうかを試してみましたが、成功しませんでした。
最後に、kryoにはkryo.setRegistrationOptional(true)があることを知っていますが、それを使用する方法を理解しようとすると非常に苦労しています。このオプションをオンにしても、クラスを登録していない場合でもkryoは例外をスローするようです。また、想定されるこのメソッドは、すべてのクラスを登録できるよりもはるかに低速です。このメソッドを使用して初めてオブジェクトを送信する必要があるのが遅い場合は問題ありませんが、オブジェクトを送信するたびにパフォーマンスが大幅に低下しても問題ないかどうかはわかりません。
理想的には、kryonetを使用して送信したいオブジェクトのパッケージがあります。そのパッケージをスキャンして、登録する必要のあるすべてのクラスを判別するだけであれば、それは素晴らしいことです。すべてのクライアントがすべてのオブジェクトを登録する必要があるわけではありませんが、それは別の問題であり、その解決策があるかどうかはわかりません。
誰かが私を正しい方向に向けることができれば、それは素晴らしいことです。