private void ConnectionRequest(object sender, ObjectReceivedEventArgs e) { if (e.Value is ConnectionRequest crv) { openChannels.GetOrAdd(crv.ProposedGuid, s => { var ret = new MemoryServiceChannel(crv.ProposedGuid, true, MscMode.Server, crv.Ttl, new IdentityFromWindowsProvider()); ret.ObjectReceived += ClientComm; ret.ConnectionStatusChanged += ClientConnectionChanged; return(ret); }); } }
public IServiceHubClientChannel CreateClient(string serviceAddr, AsyncBackStream backStream) { MemoryServiceChannel initialChannel = new MemoryServiceChannel(serviceAddr, false, MscMode.Client, 6000, provider); var guid = Guid.NewGuid().ToString("N"); if (initialChannel.IsGlobal) { guid = $@"Global\{guid}"; } var retVal = new MemoryServiceChannel(guid, true, MscMode.Client, 15, provider); ReConnectChannel(retVal, initialChannel); return(new ServiceClient(retVal, initialChannel, this, backStream)); }