public void RemoveConnectedClientHandler(ConnectedClientHandler connectedClientHandler) { if (idToConnectedClientMap.ContainsKey(connectedClientHandler.ClientId)) { idToConnectedClientMap.Remove(connectedClientHandler.ClientId); } clientConnectedEventQueue.Enqueue(new ClientConnectionEvent(connectedClientHandler, false)); connectedClientHandler.Dispose(); }
private void HandleClientMessageWithMicrophone(IPEndPoint clientIpEndPoint, ConnectRequestDto connectRequestDto) { ConnectedClientHandler newConnectedClientHandler = RegisterClient(clientIpEndPoint, connectRequestDto.ClientName, connectRequestDto.ClientId, connectRequestDto.MicrophoneSampleRate); clientConnectedEventQueue.Enqueue(new ClientConnectionEvent(newConnectedClientHandler, true)); ConnectResponseDto connectResponseDto = new ConnectResponseDto { ClientName = connectRequestDto.ClientName, ClientId = connectRequestDto.ClientId, HttpServerPort = httpServer.port, MicrophonePort = newConnectedClientHandler.MicTcpListener.GetPort(), }; Debug.Log("Sending ConnectResponse to " + clientIpEndPoint.Address + ":" + clientIpEndPoint.Port); serverUdpClient.Send(connectResponseDto.ToJson(), clientIpEndPoint); }
private ConnectedClientHandler RegisterClient( IPEndPoint clientIpEndPoint, string clientName, string clientId, int microphoneSampleRate) { // Dispose any currently registered client with the same IP-Address. if (idToConnectedClientMap.TryGetValue(clientId, out ConnectedClientHandler existingConnectedClientHandler)) { existingConnectedClientHandler.Dispose(); } ConnectedClientHandler connectedClientHandler = new ConnectedClientHandler(this, clientIpEndPoint, clientName, clientId, microphoneSampleRate); idToConnectedClientMap[clientId] = connectedClientHandler; Debug.Log("New number of connected clients: " + idToConnectedClientMap.Count); return(connectedClientHandler); }
public static bool TryGetConnectedClientHandler(string clientIpEndPointId, out ConnectedClientHandler connectedClientHandler) { return(idToConnectedClientMap.TryGetValue(clientIpEndPointId, out connectedClientHandler)); }
public ClientConnectionEvent(ConnectedClientHandler connectedClientHandler, bool isConnected) { this.ConnectedClientHandler = connectedClientHandler; this.IsConnected = isConnected; }