diff --git a/websocket-sharp/Server/WebSocketSessionManager.cs b/websocket-sharp/Server/WebSocketSessionManager.cs index 29a12611..f453d30d 100644 --- a/websocket-sharp/Server/WebSocketSessionManager.cs +++ b/websocket-sharp/Server/WebSocketSessionManager.cs @@ -276,13 +276,23 @@ namespace WebSocketSharp.Server private void broadcast (Opcode opcode, Stream stream, Action completed) { var cache = new Dictionary (); + try { - Broadcast (opcode, stream, cache); + foreach (var session in Sessions) { + if (_state != ServerState.Start) { + _log.Error ("The service is shutting down."); + break; + } + + session.Context.WebSocket.Send (opcode, stream, cache); + } + if (completed != null) completed (); } catch (Exception ex) { - _log.Fatal (ex.ToString ()); + _log.Error (ex.Message); + _log.Debug (ex.ToString ()); } finally { foreach (var cached in cache.Values)