Modified connecting

This commit is contained in:
sta 2014-01-28 17:10:36 +09:00
parent aea4ca8c9a
commit 2c1078d75c
2 changed files with 19 additions and 16 deletions

View File

@ -205,6 +205,13 @@ namespace WebSocketSharp
: null; : 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) internal static string CheckIfOpen (this WebSocketState state)
{ {
return state == WebSocketState.CONNECTING return state == WebSocketState.CONNECTING

View File

@ -637,6 +637,13 @@ namespace WebSocketSharp
return false; return false;
} }
private string checkIfCanConnect ()
{
return !_client && _readyState == WebSocketState.CLOSED
? "Connect isn't available to reconnect as a server."
: _readyState.CheckIfConnectable ();
}
// As server // As server
private string checkIfValidHandshakeRequest (WebSocketContext context) private string checkIfValidHandshakeRequest (WebSocketContext context)
{ {
@ -820,12 +827,11 @@ namespace WebSocketSharp
frame, CloseStatusCode.INCORRECT_DATA, null); frame, CloseStatusCode.INCORRECT_DATA, null);
} }
// As client
private bool connect () private bool connect ()
{ {
lock (_forConn) { lock (_forConn) {
if (IsConnected) { var msg = _readyState.CheckIfConnectable ();
var msg = "A WebSocket connection has already been established."; if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
error (msg); error (msg);
@ -833,7 +839,7 @@ namespace WebSocketSharp
} }
try { try {
if (doHandshake ()) { if (_client ? doHandshake () : acceptHandshake ()) {
_readyState = WebSocketState.OPEN; _readyState = WebSocketState.OPEN;
return true; return true;
} }
@ -1746,12 +1752,7 @@ namespace WebSocketSharp
/// </summary> /// </summary>
public void Connect () public void Connect ()
{ {
var msg = !_client var msg = checkIfCanConnect ();
? "Connect isn't available as a server."
: IsConnected
? "A WebSocket connection has already been established."
: null;
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
error (msg); error (msg);
@ -1771,12 +1772,7 @@ namespace WebSocketSharp
/// </remarks> /// </remarks>
public void ConnectAsync () public void ConnectAsync ()
{ {
var msg = !_client var msg = checkIfCanConnect ();
? "ConnectAsync isn't available as a server."
: IsConnected
? "A WebSocket connection has already been established."
: null;
if (msg != null) { if (msg != null) {
_logger.Error (msg); _logger.Error (msg);
error (msg); error (msg);