ネットワーク プロトコルでデータをシリアル化するために gob ("encoding/gob") を使用することを検討しています。いろいろと調べてみましたが、これらの問題の解決策が見つからないようです。
メッセージのフレーミング - gob のドキュメントは、TCP 接続を gob デコーダーでラップして読み取るだけでよいという印象を与えます。しかし、メッセージを半分しか受信しなかった場合はどうなりますか? gob はどうにかしてこれに対処できますか、それともメッセージ フレームを追加し、メッセージ データを gob のバッファにコピーしてシリアル化を解除する必要がありますか?
さまざまな種類のメッセージ - プロトコルにはさまざまな種類のメッセージがあります。これを gob で処理するにはどうすればよいですか? データのタイプを示すすべての gob blob の前に識別子を付けることによって? すべてのメッセージを、すべての異なるメッセージのフィールドを含む「マスター」メッセージに入れることによって (それを 1 つのタイプのメッセージだけに減らします)? 後者(より単純)を試してみましたが、オーバーヘッドが非常に大きいようです(> 650バイト)。