/// <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); }
public LiteNetLibRequestCallback( uint requestId, TransportHandler transportHandler, LiteNetLibResponseHandler responseHandler, ResponseDelegate <INetSerializable> responseDelegate) { RequestId = requestId; TransportHandler = transportHandler; ResponseHandler = responseHandler; ResponseDelegate = responseDelegate; }
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); }
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; }
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); }