Ejemplo n.º 1
0
 /// <summary>
 /// Register response handler which will read response message and do something by requester
 /// </summary>
 /// <typeparam name="TRequest"></typeparam>
 /// <typeparam name="TResponse"></typeparam>
 /// <param name="requestType"></param>
 /// <param name="handlerDelegate"></param>
 public void RegisterResponseHandler <TRequest, TResponse>(
     ushort requestType,
     ResponseDelegate <TResponse> handlerDelegate = null)
     where TRequest : INetSerializable, new()
     where TResponse : INetSerializable, new()
 {
     responseHandlers[requestType] = new LiteNetLibResponseHandler <TRequest, TResponse>(handlerDelegate);
 }
Ejemplo n.º 2
0
 public LiteNetLibRequestCallback(
     uint requestId,
     TransportHandler transportHandler,
     LiteNetLibResponseHandler responseHandler,
     ResponseDelegate <INetSerializable> responseDelegate)
 {
     RequestId        = requestId;
     TransportHandler = transportHandler;
     ResponseHandler  = responseHandler;
     ResponseDelegate = responseDelegate;
 }
Ejemplo n.º 3
0
        private uint CreateRequest(
            LiteNetLibResponseHandler responseHandler,
            ResponseDelegate <INetSerializable> responseDelegate,
            int millisecondsTimeout)
        {
            uint requestId = nextRequestId++;

            // Get response callback by request type
            requestCallbacks.TryAdd(requestId, new LiteNetLibRequestCallback(requestId, this, responseHandler, responseDelegate));
            RequestTimeout(requestId, millisecondsTimeout).Forget();
            return(requestId);
        }
Ejemplo n.º 4
0
 public LiteNetLibRequestCallback(
     uint ackId,
     long duration,
     TransportHandler transportHandler,
     LiteNetLibResponseHandler responseHandler,
     ResponseDelegate responseDelegate)
 {
     AckId            = ackId;
     RequestTime      = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
     Duration         = duration;
     TransportHandler = transportHandler;
     ResponseHandler  = responseHandler;
     ResponseDelegate = responseDelegate;
 }
Ejemplo n.º 5
0
        private uint CreateRequest(
            LiteNetLibResponseHandler responseHandler,
            long duration,
            ResponseDelegate responseDelegate)
        {
            uint ackId = nextAckId++;

            lock (requestCallbacks)
            {
                // Get response callback by request type
                requestCallbacks.Add(ackId, new LiteNetLibRequestCallback(ackId, duration, this, responseHandler, responseDelegate));
            }
            return(ackId);
        }