[Modify] Add them

This commit is contained in:
sta 2017-01-12 16:59:38 +09:00
parent 761ff68565
commit 0e2a5ae7db

View File

@ -290,6 +290,23 @@ namespace WebSocketSharp.Server
_sweepTimer.Elapsed += (sender, e) => Sweep (); _sweepTimer.Elapsed += (sender, e) => Sweep ();
} }
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;
}
}
private bool tryGetSession (string id, out IWebSocketSession session) private bool tryGetSession (string id, out IWebSocketSession session)
{ {
bool ret; bool ret;
@ -368,6 +385,16 @@ namespace WebSocketSharp.Server
} }
} }
internal void Stop (ushort code, string reason)
{
if (code == 1005) { // == no status
stop (PayloadData.Empty, true);
return;
}
stop (new PayloadData (code, reason), !code.IsReserved ());
}
internal void Stop (CloseEventArgs e, byte[] frameAsBytes, bool receive) internal void Stop (CloseEventArgs e, byte[] frameAsBytes, bool receive)
{ {
lock (_sync) { lock (_sync) {