diff --git a/websocket-sharp/WebSocket.cs b/websocket-sharp/WebSocket.cs index dd89ed04..127738c0 100644 --- a/websocket-sharp/WebSocket.cs +++ b/websocket-sharp/WebSocket.cs @@ -2808,17 +2808,19 @@ namespace WebSocketSharp /// public void SendAsync (FileInfo file, Action completed) { - var msg = _readyState.CheckIfAvailable (false, true, false, false) ?? - CheckSendParameter (file); + if (_readyState != WebSocketState.Open) { + var msg = "The current state of the connection is not Open."; + throw new InvalidOperationException (msg); + } - if (msg != null) { - _logger.Error (msg); - error ("An error has occurred in sending data.", null); + if (file == null) + throw new ArgumentNullException ("file"); - return; - } + FileStream stream; + if (!file.TryOpenRead (out stream)) + throw new ArgumentException ("Cannot be opened to read.", "file"); - sendAsync (Opcode.Binary, file.OpenRead (), completed); + sendAsync (Opcode.Binary, stream, completed); } ///