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