/// <summary> /// Called when socket is disconnected internally /// </summary> internal void DisconnectInternal(HazelInternalErrors error, string reason) { var handler = this.OnInternalDisconnect; if (handler != null) { MessageWriter messageToRemote = handler(error); if (messageToRemote != null) { try { Disconnect(reason, messageToRemote); } finally { messageToRemote.Recycle(); } } else { Disconnect(reason); } } else { Disconnect(reason); } }
/// <summary> /// Called when socket is disconnected internally /// </summary> internal async ValueTask DisconnectInternal(HazelInternalErrors error, string reason) { Func <HazelInternalErrors, MessageWriter> handler = this.OnInternalDisconnect; if (handler != null) { MessageWriter messageToRemote = handler(error); if (messageToRemote != null) { try { await Disconnect(reason, messageToRemote); } finally { messageToRemote.Recycle(); } } else { await Disconnect(reason); } } else { await Disconnect(reason); } }