Modified WebSocketSessionManager.cs
This commit is contained in:
		| @@ -154,7 +154,7 @@ namespace WebSocketSharp.Server | |||||||
|     /// otherwise, <see langword="null"/>. |     /// otherwise, <see langword="null"/>. | ||||||
|     /// </value> |     /// </value> | ||||||
|     /// <param name="id"> |     /// <param name="id"> | ||||||
|     /// A <see cref="string"/> that contains a session ID to find. |     /// A <see cref="string"/> that contains the ID of the session information to get. | ||||||
|     /// </param> |     /// </param> | ||||||
|     public IWebSocketSession this [string id] { |     public IWebSocketSession this [string id] { | ||||||
|       get { |       get { | ||||||
| @@ -165,17 +165,11 @@ namespace WebSocketSharp.Server | |||||||
|           return null; |           return null; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         lock (_sync) |         WebSocketService session; | ||||||
|         { |         if (!TryGetServiceInstance (id, out session)) | ||||||
|           try { |           _logger.Error ("The WebSocket session with the specified ID not found.\nID: " + id); | ||||||
|             return _sessions [id]; |  | ||||||
|           } |         return session; | ||||||
|           catch { |  | ||||||
|             _logger.Error ( |  | ||||||
|               "The WebSocket session with the specified ID not found.\nID: " + id); |  | ||||||
|             return null; |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -468,8 +462,7 @@ namespace WebSocketSharp.Server | |||||||
|       WebSocketService session; |       WebSocketService session; | ||||||
|       if (!TryGetServiceInstance (id, out session)) |       if (!TryGetServiceInstance (id, out session)) | ||||||
|       { |       { | ||||||
|         _logger.Error ( |         _logger.Error ("The WebSocket session with the specified ID not found.\nID: " + id); | ||||||
|           "The WebSocket session with the specified ID not found.\nID: " + id); |  | ||||||
|         return; |         return; | ||||||
|       } |       } | ||||||
|  |  | ||||||
| @@ -501,8 +494,7 @@ namespace WebSocketSharp.Server | |||||||
|       WebSocketService session; |       WebSocketService session; | ||||||
|       if (!TryGetServiceInstance (id, out session)) |       if (!TryGetServiceInstance (id, out session)) | ||||||
|       { |       { | ||||||
|         _logger.Error ( |         _logger.Error ("The WebSocket session with the specified ID not found.\nID: " + id); | ||||||
|           "The WebSocket session with the specified ID not found.\nID: " + id); |  | ||||||
|         return; |         return; | ||||||
|       } |       } | ||||||
|  |  | ||||||
| @@ -534,8 +526,7 @@ namespace WebSocketSharp.Server | |||||||
|       WebSocketService session; |       WebSocketService session; | ||||||
|       if (!TryGetServiceInstance (id, out session)) |       if (!TryGetServiceInstance (id, out session)) | ||||||
|       { |       { | ||||||
|         _logger.Error ( |         _logger.Error ("The WebSocket session with the specified ID not found.\nID: " + id); | ||||||
|           "The WebSocket session with the specified ID not found.\nID: " + id); |  | ||||||
|         return; |         return; | ||||||
|       } |       } | ||||||
|  |  | ||||||
| @@ -564,8 +555,7 @@ namespace WebSocketSharp.Server | |||||||
|       WebSocketService session; |       WebSocketService session; | ||||||
|       if (!TryGetServiceInstance (id, out session)) |       if (!TryGetServiceInstance (id, out session)) | ||||||
|       { |       { | ||||||
|         _logger.Error ( |         _logger.Error ("The WebSocket session with the specified ID not found.\nID: " + id); | ||||||
|           "The WebSocket session with the specified ID not found.\nID: " + id); |  | ||||||
|         return false; |         return false; | ||||||
|       } |       } | ||||||
|  |  | ||||||
| @@ -598,8 +588,7 @@ namespace WebSocketSharp.Server | |||||||
|       WebSocketService session; |       WebSocketService session; | ||||||
|       if (!TryGetServiceInstance (id, out session)) |       if (!TryGetServiceInstance (id, out session)) | ||||||
|       { |       { | ||||||
|         _logger.Error ( |         _logger.Error ("The WebSocket session with the specified ID not found.\nID: " + id); | ||||||
|           "The WebSocket session with the specified ID not found.\nID: " + id); |  | ||||||
|         return false; |         return false; | ||||||
|       } |       } | ||||||
|  |  | ||||||
| @@ -631,8 +620,7 @@ namespace WebSocketSharp.Server | |||||||
|       WebSocketService service; |       WebSocketService service; | ||||||
|       if (!TryGetServiceInstance (id, out service)) |       if (!TryGetServiceInstance (id, out service)) | ||||||
|       { |       { | ||||||
|         _logger.Error ( |         _logger.Error ("The WebSocket session with the specified ID not found.\nID: " + id); | ||||||
|           "The WebSocket session with the specified ID not found.\nID: " + id); |  | ||||||
|         return false; |         return false; | ||||||
|       } |       } | ||||||
|  |  | ||||||
| @@ -665,8 +653,7 @@ namespace WebSocketSharp.Server | |||||||
|       WebSocketService service; |       WebSocketService service; | ||||||
|       if (!TryGetServiceInstance (id, out service)) |       if (!TryGetServiceInstance (id, out service)) | ||||||
|       { |       { | ||||||
|         _logger.Error ( |         _logger.Error ("The WebSocket session with the specified ID not found.\nID: " + id); | ||||||
|           "The WebSocket session with the specified ID not found.\nID: " + id); |  | ||||||
|         return false; |         return false; | ||||||
|       } |       } | ||||||
|  |  | ||||||
| @@ -692,12 +679,12 @@ namespace WebSocketSharp.Server | |||||||
|             if (_stopped) |             if (_stopped) | ||||||
|               break; |               break; | ||||||
|  |  | ||||||
|             WebSocketService service; |             WebSocketService session; | ||||||
|             if (_sessions.TryGetValue (id, out service)) |             if (_sessions.TryGetValue (id, out session)) | ||||||
|             { |             { | ||||||
|               var state = service.State; |               var state = session.State; | ||||||
|               if (state == WebSocketState.OPEN) |               if (state == WebSocketState.OPEN) | ||||||
|                 service.Context.WebSocket.Close (CloseStatusCode.ABNORMAL); |                 session.Context.WebSocket.Close (CloseStatusCode.ABNORMAL); | ||||||
|               else if (state == WebSocketState.CLOSING) |               else if (state == WebSocketState.CLOSING) | ||||||
|                 continue; |                 continue; | ||||||
|               else |               else | ||||||
| @@ -718,18 +705,30 @@ namespace WebSocketSharp.Server | |||||||
|     /// otherwise, <c>false</c>. |     /// otherwise, <c>false</c>. | ||||||
|     /// </returns> |     /// </returns> | ||||||
|     /// <param name="id"> |     /// <param name="id"> | ||||||
|     /// A <see cref="string"/> that contains a session ID to find. |     /// A <see cref="string"/> that contains the ID of the session information to get. | ||||||
|     /// </param> |     /// </param> | ||||||
|     /// <param name="session"> |     /// <param name="session"> | ||||||
|     /// When this method returns, a <see cref="IWebSocketSession"/> instance that contains the session |     /// When this method returns, a <see cref="IWebSocketSession"/> instance that contains the session | ||||||
|     /// information if it is successfully found; otherwise, <see langword="null"/>. |     /// information if it is successfully found; otherwise, <see langword="null"/>. | ||||||
|  |     /// This parameter is passed uninitialized. | ||||||
|     /// </param> |     /// </param> | ||||||
|     public bool TryGetSession (string id, out IWebSocketSession session) |     public bool TryGetSession (string id, out IWebSocketSession session) | ||||||
|     { |     { | ||||||
|  |       var msg = id.CheckIfValidSessionID (); | ||||||
|  |       if (msg != null) | ||||||
|  |       { | ||||||
|  |         _logger.Error (msg); | ||||||
|  |         session = null; | ||||||
|  |  | ||||||
|  |         return false; | ||||||
|  |       } | ||||||
|  |  | ||||||
|       WebSocketService service; |       WebSocketService service; | ||||||
|       var result = TryGetServiceInstance (id, out service); |       var result = TryGetServiceInstance (id, out service); | ||||||
|       session = service; |       if (!result) | ||||||
|  |         _logger.Error ("The WebSocket session with the specified ID not found.\nID: " + id); | ||||||
|  |  | ||||||
|  |       session = service; | ||||||
|       return result; |       return result; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user