1

I create a java server base Netty and use Protostuff handle the data, but when I receive data in game client base unity then deserialize it, but throw an error: "invalid field in source data 0".How can I fix it?

Java Code:

private Schema<SocketModel> schema=RuntimeSchema.getSchema(SocketModel.class);
LinkedBuffer buffer = LinkedBuffer.allocate(1024);
    byte[] data = ProtobufIOUtil.toByteArray(message, schema, buffer);  
    ByteBuf buf = Unpooled.copiedBuffer(CoderUtil.IntToBytes(data.length),data); 

out.writeBytes(buf);

C# Code:

 private SocketModel DeSerial(byte[] msg)
{
    using (MemoryStream ms = new MemoryStream(msg))
    {

            SocketModel socketModel = Serializer.Deserialize<SocketModel>(ms);
            return socketModel;
    }
}
Cœur
  • 37,241
  • 25
  • 195
  • 267
Joker
  • 11
  • 1
  • Is SocketModel defined in proto file and java code is generated? You can try to use JsonIOUtil to see how serialized data looks like, what fields are there - and compare it with SocketModel from proto. – Kostiantyn Nov 05 '16 at 10:54

0 Answers0