如何在Dart中解码从netty服务器发送的对象并将对象编码到netty服务器

如何在Dart中解码从netty服务器发送的对象并将对象编码到netty服务器,dart,flutter,netty,Dart,Flutter,Netty,我已经创建了一个连接,但是我已经成功地创建了连接。然而,我的新问题是,从netty服务器发送的数据是一个字节数组(我相信无论如何),我似乎不知道如何将字节数组解码为对象。我仍然想回答我原来的问题,因为答案可能比我现在所做的更好。如何解密从netty服务器()发送的字节数组并对字节数组进行编码?(我正在为netty使用ObjectEncoder和ObjectDecoder)netty使用不同的编解码器来序列化数据。默认的ObjectEncoder显示为序列化包含java类uid的头,然后附加一个普

我已经创建了一个连接,但是我已经成功地创建了连接。然而,我的新问题是,从netty服务器发送的数据是一个字节数组(我相信无论如何),我似乎不知道如何将字节数组解码为对象。我仍然想回答我原来的问题,因为答案可能比我现在所做的更好。如何解密从netty服务器()发送的字节数组并对字节数组进行编码?(我正在为netty使用ObjectEncoder和ObjectDecoder)

netty使用不同的编解码器来序列化数据。默认的
ObjectEncoder
显示为序列化包含java类uid的头,然后附加一个普通java对象序列化。您不太可能希望在Dart中实现与之对应的功能

您需要找到可以在netty和Dart中生成/解析的数据表示。在一个极端,你可以使用netty
ByteBuf
。很明显,netty是如何序列化成
ByteBuf
的,您可以在Dart端使用
ByteData
模拟它。在另一个极端,您可能很少使用netty的序列化。您可以将Java对象编码为UTF8JSON字符串,发送该字符串,然后在dart端简单地解码utf8和JSON。当然,这并不能提供紧凑的导线表示。如果您想在java和DART中使用一个紧凑的表示,请考虑ToBuff.< /P>
如果要让两个系统以两种不同的语言进行互操作,则需要负责它们如何进行序列化/反序列化。使用netty的
ObjectEncoder
似乎是个坏主意,因为它过于依赖Java的内部对象序列化,而Java的内部对象序列化在Dart端没有对应的对象。

netty有不同的编解码器来序列化数据。默认的
ObjectEncoder
显示为序列化包含java类uid的头,然后附加一个普通java对象序列化。您不太可能希望在Dart中实现与之对应的功能

您需要找到可以在netty和Dart中生成/解析的数据表示。在一个极端,你可以使用netty
ByteBuf
。很明显,netty是如何序列化成
ByteBuf
的,您可以在Dart端使用
ByteData
模拟它。在另一个极端,您可能很少使用netty的序列化。您可以将Java对象编码为UTF8JSON字符串,发送该字符串,然后在dart端简单地解码utf8和JSON。当然,这并不能提供紧凑的导线表示。如果您想在java和DART中使用一个紧凑的表示,请考虑ToBuff.< /P>
如果要让两个系统以两种不同的语言进行互操作,则需要负责它们如何进行序列化/反序列化。使用netty的
ObjectEncoder
似乎是个坏主意,因为它过于依赖Java的内部对象序列化,而Java的内部对象序列化在Dart端没有对应的对象。

同意protobuf。似乎是解决此问题的正确方法感谢您提供的宝贵信息。我将尝试遵循这个概念,如果我需要额外的帮助,我可以再次请求:)同意protobuf。似乎是解决此问题的正确方法感谢您提供的宝贵信息。我将尝试遵循这个概念,如果我需要额外的帮助,我可以再次请求:)