Пример #1
0
        protected bool CreateAndWriteRequest <TRequest>(
            NetDataWriter writer,
            ushort requestType,
            TRequest request,
            SerializerDelegate extraRequestSerializer,
            long duration,
            ResponseDelegate responseDelegate)
            where TRequest : INetSerializable
        {
            if (!responseHandlers.ContainsKey(requestType))
            {
                Logging.LogError($"Cannot create request. Request type: {requestType} not registered.");
                return(false);
            }
            if (!responseHandlers[requestType].IsRequestTypeValid(typeof(TRequest)))
            {
                Logging.LogError($"Cannot create request. Request type: {requestType}, {typeof(TRequest)} is not valid message type.");
                return(false);
            }
            // Create request
            uint ackId = CreateRequest(responseHandlers[requestType], duration, responseDelegate);

            // Write request
            writer.Reset();
            writer.PutPackedUShort(RequestMessageType);
            writer.PutPackedUShort(requestType);
            writer.PutPackedUInt(ackId);
            request.Serialize(writer);
            if (extraRequestSerializer != null)
            {
                extraRequestSerializer.Invoke(writer);
            }
            return(true);
        }
Пример #2
0
 public void ClientSendPacket(DeliveryMethod deliveryMethod, ushort msgType, System.Action <NetDataWriter> serializer)
 {
     writer.Reset();
     writer.PutPackedUShort(msgType);
     if (serializer != null)
     {
         serializer.Invoke(writer);
     }
     Transport.ClientSend(deliveryMethod, writer);
 }
Пример #3
0
 public void ClientSendPacket(SendOptions options, ushort msgType, System.Action <NetDataWriter> serializer)
 {
     writer.Reset();
     writer.PutPackedUShort(msgType);
     if (serializer != null)
     {
         serializer.Invoke(writer);
     }
     Transport.ClientSend(options, writer);
 }
 public static void WritePacket(
     NetDataWriter writer,
     ushort messageType)
 {
     writer.Reset();
     writer.PutPackedUShort(messageType);
 }
 public void Serialize(NetDataWriter writer)
 {
     writer.PutPackedUShort((ushort)message);
     writer.Put(sceneName);
     writer.Put(networkAddress);
     writer.Put(networkPort);
 }
 public void Serialize(NetDataWriter writer)
 {
     writer.PutPackedUShort((ushort)message);
     writer.Put(userId);
     writer.Put(accessToken);
     writer.PutPackedLong(unbanTime);
 }
Пример #7
0
 protected void WritePacket(
     NetDataWriter writer,
     ushort messageType,
     SerializerDelegate extraSerializer)
 {
     writer.Reset();
     writer.PutPackedUShort(messageType);
     if (extraSerializer != null)
     {
         extraSerializer.Invoke(writer);
     }
 }
 private void RequestProceeded(long connectionId, uint requestId, AckResponseCode responseCode, INetSerializable response, SerializerDelegate responseSerializer)
 {
     // Write response
     Writer.Reset();
     Writer.PutPackedUShort(ResponseMessageType);
     Writer.PutPackedUInt(requestId);
     Writer.PutValue(responseCode);
     Writer.Put(response);
     if (responseSerializer != null)
     {
         responseSerializer.Invoke(Writer);
     }
     // Send response
     SendMessage(connectionId, 0, DeliveryMethod.ReliableUnordered, Writer);
 }
        protected bool CreateAndWriteRequest <TRequest>(
            NetDataWriter writer,
            ushort requestType,
            TRequest request,
            ResponseDelegate <INetSerializable> responseDelegate,
            int millisecondsTimeout,
            SerializerDelegate extraRequestSerializer)
            where TRequest : INetSerializable, new()
        {
            if (!responseHandlers.ContainsKey(requestType))
            {
                responseDelegate.Invoke(new ResponseHandlerData(nextRequestId++, this, -1, null), AckResponseCode.Unimplemented, EmptyMessage.Value);
                Logging.LogError($"Cannot create request. Request type: {requestType} not registered.");
                return(false);
            }
            if (!responseHandlers[requestType].IsRequestTypeValid(typeof(TRequest)))
            {
                responseDelegate.Invoke(new ResponseHandlerData(nextRequestId++, this, -1, null), AckResponseCode.Unimplemented, EmptyMessage.Value);
                Logging.LogError($"Cannot create request. Request type: {requestType}, {typeof(TRequest)} is not valid message type.");
                return(false);
            }
            // Create request
            uint requestId = CreateRequest(responseHandlers[requestType], responseDelegate, millisecondsTimeout);

            // Write request
            writer.Reset();
            writer.PutPackedUShort(RequestMessageType);
            writer.PutPackedUShort(requestType);
            writer.PutPackedUInt(requestId);
            writer.Put(request);
            if (extraRequestSerializer != null)
            {
                extraRequestSerializer.Invoke(writer);
            }
            return(true);
        }
 public void Serialize(NetDataWriter writer)
 {
     writer.PutPackedUShort((ushort)message);
     if (characters == null)
     {
         writer.Put(byte.MinValue);
     }
     else
     {
         writer.Put((byte)characters.Count);
         foreach (PlayerCharacterData character in characters)
         {
             character.SerializeCharacterData(writer, withTransforms: false, withBuffs: false, withSkillUsages: false, withNonEquipItems: false, withSummons: false, withHotkeys: false, withQuests: false);
         }
     }
 }
 public void Serialize(NetDataWriter writer)
 {
     writer.PutPackedUShort((ushort)message);
 }
Пример #12
0
 public void Serialize(NetDataWriter writer)
 {
     writer.PutPackedUShort((ushort)message);
     writer.Put(instanceId);
     writer.Put(requestId);
 }
Пример #13
0
 public void Serialize(NetDataWriter writer)
 {
     writer.PutPackedUShort(value);
 }