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));
 }
Exemplo n.º 5
0
 public ClientConnectionEvent(ConnectedClientHandler connectedClientHandler, bool isConnected)
 {
     this.ConnectedClientHandler = connectedClientHandler;
     this.IsConnected            = isConnected;
 }