private void CreateHost(CommunicationMethod method, Uri hostAddr, Process proc)
        {
            _hostId = new Identity(proc.Id, "Host", Channel, IdentityRole.Host);

            switch (method)
            {
            case CommunicationMethod.Tcp:
                HostDevice = new HttpCommunicationDevice(_hostId, hostAddr);
                break;

            default:
                HostDevice = new HttpCommunicationDevice(_hostId, hostAddr);
                break;
            }

            HostDevice.MessageReceived += ReceivedMessage;
            _hostId.Address             = HostDevice.Uri;
        }
        private void CreateClient(CommunicationMethod method, Uri localAddr, Process proc)
        {
            _clientId = new Identity(proc.Id, "Client-" + proc.Id, "Client-" + Channel + proc.Id, IdentityRole.Client);

            switch (method)
            {
            case CommunicationMethod.Tcp:
                ClientDevice = new HttpCommunicationDevice(_clientId, localAddr);
                break;

            default:
                ClientDevice = new NamedPipeCommunicationDevice(_clientId, localAddr);
                break;
            }

            ClientDevice.ResponseReceived += ReceivedResponse;
            ClientDevice.MessageReceived  += ReceivedMessage;
            _clientId.Address              = ClientDevice.Uri;
        }