protected override void OnSerializeStringModel(PacketStringStream stream, Coop_Model_Base model) { Type modelType = ((PACKET_TYPE)model.c).GetModelType(); string str = JSONSerializer.Serialize(model, modelType); stream.Write(str); }
protected override Coop_Model_Base OnDeserializeStringModel(PacketStringStream stream, Type type, CoopPacketHeader header) { string message = stream.Read(); Coop_Model_Base coop_Model_Base = JSONSerializer.Deserialize <Coop_Model_Base>(message); Type modelType = ((PACKET_TYPE)coop_Model_Base.c).GetModelType(); return(JSONSerializer.Deserialize <Coop_Model_Base>(message, modelType)); }
public virtual PacketStream SerializeString(CoopPacket packet) { PacketStringStream packetStringStream = new PacketStringStream(); OnSerializeStringPrefix(packetStringStream); OnSerializeStringHeader(packetStringStream, packet.header); OnSerializeStringModel(packetStringStream, packet.model); return(new PacketStream(packetStringStream.ToString())); }
private CoopPacket DeserializeString(string data, Type type) { PacketStringStream packetStringStream = new PacketStringStream(data); CoopPacket coopPacket = new CoopPacket(); OnDeserializeStringPrefix(packetStringStream); coopPacket.header = OnDeserializeStringHeader(packetStringStream); coopPacket.model = OnDeserializeStringModel(packetStringStream, type, coopPacket.header); packetStringStream.Close(); packetStringStream = null; return(coopPacket); }
protected override void OnSerializeStringHeader(PacketStringStream stream, CoopPacketHeader header) { int user_token_len = (!(version == "00")) ? 1 : 11; string empty = string.Empty; empty += ConvertUserToken(header.from, user_token_len); empty += ConvertUserToken(header.to, user_token_len); empty += ((!header.promise) ? "0" : "1"); empty += header.sequenceNo.ToString().PadLeft(16); string str = empty.Length.ToString("X4"); stream.Write(str); stream.Write(empty); }
protected override CoopPacketHeader OnDeserializeStringHeader(PacketStringStream stream) { string text = stream.Read(4); int len = (!(version == "00")) ? 1 : 11; int position = stream.Position; string user_token = stream.Read(len); string user_token2 = stream.Read(len); string a = stream.Read(1); string s = stream.Read(16); int num = stream.Position - position; if (num.ToString("X4") != text) { Log.Error(LOG.WEBSOCK, "break header packet! {0} != {1}", num, int.Parse(text, NumberStyles.HexNumber)); } int from = ConvertClientId(user_token); int to = ConvertClientId(user_token2); bool promise = a == "1"; int sequence_no = int.Parse(s); return(new CoopPacketHeader(0, from, to, promise, sequence_no)); }
protected override void OnDeserializeStringPrefix(PacketStringStream stream) { version = stream.Read("10".Length); }
protected override void OnSerializeStringPrefix(PacketStringStream stream) { version = "10"; stream.Write(version); }
protected virtual void OnSerializeStringModel(PacketStringStream stream, Coop_Model_Base model) { }
protected virtual void OnSerializeStringHeader(PacketStringStream stream, CoopPacketHeader header) { }
protected virtual void OnSerializeStringPrefix(PacketStringStream stream) { }
protected virtual Coop_Model_Base OnDeserializeStringModel(PacketStringStream stream, Type type, CoopPacketHeader header) { return(null); }
protected virtual CoopPacketHeader OnDeserializeStringHeader(PacketStringStream stream) { return(null); }