From fa30a602e123063e7732ccef715ebb18558371de Mon Sep 17 00:00:00 2001 From: sta Date: Mon, 16 Jan 2017 16:48:16 +0900 Subject: [PATCH] [Modify] Add it --- websocket-sharp/Server/WebSocketServer.cs | 37 +++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/websocket-sharp/Server/WebSocketServer.cs b/websocket-sharp/Server/WebSocketServer.cs index dbbdbe31..da0309e1 100644 --- a/websocket-sharp/Server/WebSocketServer.cs +++ b/websocket-sharp/Server/WebSocketServer.cs @@ -837,6 +837,43 @@ namespace WebSocketSharp.Server _receiveThread.Start (); } + private void stop (ushort code, string reason) + { + if (_state == ServerState.Ready) { + _logger.Info ("The server is not started."); + return; + } + + if (_state == ServerState.ShuttingDown) { + _logger.Info ("The server is shutting down."); + return; + } + + if (_state == ServerState.Stop) { + _logger.Info ("The server has already stopped."); + return; + } + + lock (_sync) { + if (_state == ServerState.ShuttingDown) { + _logger.Info ("The server is shutting down."); + return; + } + + if (_state == ServerState.Stop) { + _logger.Info ("The server has already stopped."); + return; + } + + _state = ServerState.ShuttingDown; + } + + stopReceiving (5000); + _services.Stop (code, reason); + + _state = ServerState.Stop; + } + private void stopReceiving (int millisecondsTimeout) { _listener.Stop ();