internal void Stop(CloseEventArgs e, bool send, bool receive) { byte[] array; object obj = this._sync; Monitor.Enter(obj); try { this._state = ServerState.ShuttingDown; if (send) { array = WebSocketFrame.CreateCloseFrame(e.PayloadData, false).ToArray(); } else { array = null; } byte[] numArray = array; foreach (WebSocketServiceHost value in this._hosts.Values) { value.Sessions.Stop(e, numArray, receive); } this._hosts.Clear(); this._state = ServerState.Stop; } finally { Monitor.Exit(obj); } }
internal void Stop(ushort code, string reason) { CloseEventArgs e = new CloseEventArgs(code, reason); bool receive = !code.IsReserved(); this.Sessions.Stop(e, !receive ? null : WebSocketFrame.CreateCloseFrame(e.PayloadData, false).ToArray(), receive); }
internal void Stop(ushort code, string reason) { var e = new CloseEventArgs(code, reason); var send = !code.IsReserved(); var bytes = send ? WebSocketFrame.CreateCloseFrame(e.PayloadData, false).ToArray() : null; Sessions.Stop(e, bytes, send); }
internal void Stop(byte [] data, bool send) { var payload = new PayloadData(data); var args = new CloseEventArgs(payload); var frameAsBytes = send ? WebSocketFrame.CreateCloseFrame(Mask.Unmask, payload).ToByteArray() : null; Stop(args, frameAsBytes); }
internal void Stop(ushort code, string reason) { CloseEventArgs closeEventArgs = new CloseEventArgs(code, reason); bool flag = !code.IsReserved(); byte[] frameAsBytes = ((!flag) ? null : WebSocketFrame.CreateCloseFrame(closeEventArgs.PayloadData, mask: false).ToByteArray()); TimeSpan timeout = ((!flag) ? TimeSpan.Zero : WaitTime); Sessions.Stop(closeEventArgs, frameAsBytes, timeout); }
internal async Task Stop(ushort code, string reason) { var e = new CloseEventArgs(code, reason); var send = !code.IsReserved(); var bytes = send ? await WebSocketFrame.CreateCloseFrame(e.PayloadData, false).ToByteArray().ConfigureAwait(false) : null; var timeout = send ? WaitTime : TimeSpan.Zero; await Sessions.Stop(e, bytes, timeout).ConfigureAwait(false); }
internal async Task Stop(CloseEventArgs e, bool send, bool wait) { _state = ServerState.ShuttingDown; var bytes = send ? await WebSocketFrame.CreateCloseFrame(e.PayloadData, false).ToByteArray().ConfigureAwait(false) : null; var timeout = wait ? _waitTime : TimeSpan.Zero; var tasks = _hosts.Values.ToArray().Select(host => host.Sessions.Stop(e, bytes, timeout)); await Task.WhenAll(tasks).ConfigureAwait(false); _hosts.Clear(); _state = ServerState.Stop; }
internal void Stop(CloseEventArgs e, bool send, bool receive) { lock (_sync) { _state = ServerState.ShuttingDown; var bytes = send ? WebSocketFrame.CreateCloseFrame(e.PayloadData, false).ToArray() : null; foreach (var host in _hosts.Values) { host.Sessions.Stop(e, bytes, receive); } _hosts.Clear(); _state = ServerState.Stop; } }
internal void Stop(CloseEventArgs e, bool send, bool wait) { lock (_sync) { _state = ServerState.ShuttingDown; byte[] frameAsBytes = ((!send) ? null : WebSocketFrame.CreateCloseFrame(e.PayloadData, mask: false).ToByteArray()); TimeSpan timeout = ((!wait) ? TimeSpan.Zero : _waitTime); foreach (WebSocketServiceHost value in _hosts.Values) { value.Sessions.Stop(e, frameAsBytes, timeout); } _hosts.Clear(); _state = ServerState.Stop; } }
internal void Stop(ushort code, string reason) { byte[] array; CloseEventArgs closeEventArg = new CloseEventArgs(code, reason); bool flag = !code.IsReserved(); if (flag) { array = WebSocketFrame.CreateCloseFrame(closeEventArg.PayloadData, false).ToArray(); } else { array = null; } this.Sessions.Stop(closeEventArg, array, flag); }
internal void Stop(CloseEventArgs e, bool send, bool wait) { lock (_sync) { _state = ServerState.ShuttingDown; var bytes = send ? WebSocketFrame.CreateCloseFrame(e.PayloadData, false).ToByteArray() : null; var timeout = wait ? _waitTime : TimeSpan.Zero; foreach (var host in _hosts.Values) { host.Sessions.Stop(e, bytes, timeout); } _hosts.Clear(); _state = ServerState.Stop; } }
private void stop(PayloadData payloadData, bool send) { var bytes = send ? WebSocketFrame.CreateCloseFrame(payloadData, false).ToArray() : null; lock (_sync) { _state = ServerState.ShuttingDown; _sweepTimer.Enabled = false; foreach (var session in _sessions.Values.ToList()) { session.Context.WebSocket.Close(payloadData, bytes); } _state = ServerState.Stop; } }
internal void Stop(byte [] data, bool send) { lock (_sync) { _state = ServerState.ShuttingDown; var payload = new PayloadData(data); var args = new CloseEventArgs(payload); var frameAsBytes = send ? WebSocketFrame.CreateCloseFrame(Mask.Unmask, payload).ToByteArray() : null; foreach (var host in _hosts.Values) { host.Sessions.Stop(args, frameAsBytes); } _hosts.Clear(); _state = ServerState.Stop; } }