From 2c1078d75cd9cde361f6e8c659bf8d65d745f81f Mon Sep 17 00:00:00 2001 From: sta Date: Tue, 28 Jan 2014 17:10:36 +0900 Subject: [PATCH] Modified connecting --- websocket-sharp/Ext.cs | 7 +++++++ websocket-sharp/WebSocket.cs | 28 ++++++++++++---------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/websocket-sharp/Ext.cs b/websocket-sharp/Ext.cs index 4396dc08..1dfe3675 100644 --- a/websocket-sharp/Ext.cs +++ b/websocket-sharp/Ext.cs @@ -205,6 +205,13 @@ namespace WebSocketSharp : null; } + internal static string CheckIfConnectable (this WebSocketState state) + { + return state == WebSocketState.OPEN || state == WebSocketState.CLOSING + ? "A WebSocket connection has already been established." + : null; + } + internal static string CheckIfOpen (this WebSocketState state) { return state == WebSocketState.CONNECTING diff --git a/websocket-sharp/WebSocket.cs b/websocket-sharp/WebSocket.cs index f0dc6946..b98a688c 100644 --- a/websocket-sharp/WebSocket.cs +++ b/websocket-sharp/WebSocket.cs @@ -637,6 +637,13 @@ namespace WebSocketSharp return false; } + private string checkIfCanConnect () + { + return !_client && _readyState == WebSocketState.CLOSED + ? "Connect isn't available to reconnect as a server." + : _readyState.CheckIfConnectable (); + } + // As server private string checkIfValidHandshakeRequest (WebSocketContext context) { @@ -820,12 +827,11 @@ namespace WebSocketSharp frame, CloseStatusCode.INCORRECT_DATA, null); } - // As client private bool connect () { lock (_forConn) { - if (IsConnected) { - var msg = "A WebSocket connection has already been established."; + var msg = _readyState.CheckIfConnectable (); + if (msg != null) { _logger.Error (msg); error (msg); @@ -833,7 +839,7 @@ namespace WebSocketSharp } try { - if (doHandshake ()) { + if (_client ? doHandshake () : acceptHandshake ()) { _readyState = WebSocketState.OPEN; return true; } @@ -1746,12 +1752,7 @@ namespace WebSocketSharp /// public void Connect () { - var msg = !_client - ? "Connect isn't available as a server." - : IsConnected - ? "A WebSocket connection has already been established." - : null; - + var msg = checkIfCanConnect (); if (msg != null) { _logger.Error (msg); error (msg); @@ -1771,12 +1772,7 @@ namespace WebSocketSharp /// public void ConnectAsync () { - var msg = !_client - ? "ConnectAsync isn't available as a server." - : IsConnected - ? "A WebSocket connection has already been established." - : null; - + var msg = checkIfCanConnect (); if (msg != null) { _logger.Error (msg); error (msg);