public void UpgradeProtocol(IProtocolUpgrader upgrader) { channel.Lock(); channel.UnbindAllEvents(handlers); var newChannel = upgrader.UpgradeClientChannel(channel, logger); newChannel.Driver = Driver; if (ChannelReplaced != null) { ChannelReplaced(this, newChannel); } channel.Unlock(); }
public void UpgradeProtocol(IProtocolUpgrader upgrader, IDataStream switchHeader = null) { channel.Lock(); channel.UnbindAllEvents(handlers); if (switchHeader != null) { channel.Send(switchHeader); } var newChannel = upgrader.UpgradeServerChannel(channel, logger); newChannel.Driver = Driver; var ev = ChannelReplaced; if (ev != null) { ev(this, newChannel); } channel.Unlock(); }