public (uint packetId, byte[] data) PreparePacket(ISerializablePacket packet) { using (var stream = _memoryStreamMgr.GetStream()) { using (var bw = new BinaryWriter(stream, Encoding.UTF8, true)) packet.Serialize(bw); return(GetPacketId(packet), stream.ToArray()); } }
public Task SendPacket(ISerializablePacket packet) { using (var stream = new MemoryStream()) using (var bw = new BinaryWriter(stream)) { packet.Serialize(bw); bw.Flush(); return(SendPacket(GetPacketId(packet), stream.ToArray())); } }
public byte[] Serialize(ISerializablePacket packet, uint objectId) { PacketHeader header = new PacketHeader(); MemoryStream stream = new MemoryStream(); header.id = currentPacketId; //header.senderId = NetworkManager/*connection manager */.Instance.clientId; header.objectId = objectId; header.packetType = packet.packetType; header.Serialize(stream); packet.Serialize(stream); return(stream.ToArray()); }
private byte[] Serialize(ISerializablePacket packet, uint objectId) { PacketHeader header = new PacketHeader(); MemoryStream stream = new MemoryStream(); header.id = currentPacketId; header.senderId = ConnectionManager.Instance.clientId; header.objectId = objectId; header.packetType = (ushort)packet.packetType; header.Serialize(stream); if (packet.packetType == (ushort)PacketType.User) { UserTypeHeader userHeader = new UserTypeHeader(); userHeader.packetType = (ushort)packet.UserType; userHeader.Serialize(stream); } packet.Serialize(stream); stream.Close(); return(stream.ToArray()); }
public static void CreateAndFinalize(NetWriter w, short opCode, ISerializablePacket packet /*, int responseID = -1, bool comepleteResponse = false, ResponseStatus status = ResponseStatus.Default*/) { w.Write(opCode); packet.Serialize(w); }