private void HandleClientMessageWithNoMicrophone(IPEndPoint clientIpEndPoint, ConnectRequestDto connectRequestDto) { ConnectResponseDto connectResponseDto = new ConnectResponseDto { ClientName = connectRequestDto.ClientName, ClientId = connectRequestDto.ClientId, HttpServerPort = httpServer.port, }; serverUdpClient.Send(connectResponseDto.ToJson(), clientIpEndPoint); }
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 void HandleServerMessage(IPEndPoint serverIpEndPoint, string message) { Debug.Log($"Received message from server {serverIpEndPoint} ({serverIpEndPoint.Address}): '{message}'"); try { ConnectResponseDto connectResponseDto = JsonConverter.FromJson <ConnectResponseDto>(message); if (!connectResponseDto.ErrorMessage.IsNullOrEmpty()) { throw new ConnectRequestException("Server returned error message: " + connectResponseDto.ErrorMessage); } if (connectResponseDto.ClientName.IsNullOrEmpty()) { throw new ConnectRequestException("Malformed ConnectResponse: missing ClientName."); } if (connectResponseDto.ClientId.IsNullOrEmpty()) { throw new ConnectRequestException("Malformed ConnectResponse: missing ClientId."); } if (!string.Equals(connectResponseDto.ClientId, settings.ClientId, StringComparison.InvariantCulture)) { throw new ConnectRequestException($"Malformed ConnectResponse: wrong ClientId. Is {connectResponseDto.ClientId}, expected {settings.ClientId}"); } if (connectResponseDto.MicrophonePort <= 0) { throw new ConnectRequestException("Malformed ConnectResponse: invalid MicrophonePort."); } connectResponseDto.ServerIpEndPoint = serverIpEndPoint; serverResponseQueue.Enqueue(connectResponseDto); } catch (Exception e) { serverResponseQueue.Enqueue(new ConnectResponseDto { ErrorMessage = e.Message }); } }