private RemoteClient MakeRemoteClient(ClientMessage clientMessage) { logger.Info($"New client was received: {clientMessage.EndPoint.ToString()}"); var config = Core.DI.Get <Config>(); IPEndPoint redirectEndPoint = new IPEndPoint( IPAddress.Parse(config.Collection.RedirectIp), config.Collection.RedirectPort ); UdpSocket redirectSocket = new UdpSocket(redirectEndPoint, true); RemoteClient remoteClient = new RemoteClient(redirectSocket, clientMessage.EndPoint); remoteClients = remoteClients.Concat(new RemoteClient[] { remoteClient }); ListenRedirectSocket(remoteClient); return(remoteClient); }
private void OnReceiveClient(ClientMessage clientMessage) { RemoteClient client = remoteClients.Find(clientMessage.EndPoint) ?? MakeRemoteClient(clientMessage); var result = client.RedirectSocket.Send(clientMessage.Message); }