Skip to content

Commit 2070a05

Browse files
committed
[增加]1. 增加是否连接状态的属性
1 parent 82a1cf2 commit 2070a05

File tree

3 files changed

+25
-1
lines changed

3 files changed

+25
-1
lines changed

Runtime/Core/IWebSocket.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ namespace UnityWebSocket
1515
/// </summary>
1616
public interface IWebSocket
1717
{
18+
bool IsConnected { get; }
19+
1820
/// <summary>
1921
/// Establishes a connection asynchronously.
2022
/// </summary>

Runtime/Implementation/NoWebGL/WebSocket.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ public WebSocketState ReadyState
4444
public event EventHandler<MessageEventArgs> OnMessage;
4545

4646
private ClientWebSocket socket;
47+
48+
public bool IsConnected
49+
{
50+
get { return isOpening; }
51+
}
52+
4753
private bool isOpening => socket != null && socket.State == System.Net.WebSockets.WebSocketState.Open;
4854
private ConcurrentQueue<SendBuffer> sendQueue = new ConcurrentQueue<SendBuffer>();
4955
private ConcurrentQueue<EventArgs> eventQueue = new ConcurrentQueue<EventArgs>();

Runtime/Implementation/WebGL/WebSocket.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#if !UNITY_EDITOR && UNITY_WEBGL
2+
23
using System;
34

45
namespace UnityWebSocket
@@ -7,7 +8,18 @@ public class WebSocket : IWebSocket
78
{
89
public string Address { get; private set; }
910
public string[] SubProtocols { get; private set; }
10-
public WebSocketState ReadyState { get { return (WebSocketState)WebSocketManager.WebSocketGetState(instanceId); } }
11+
12+
public bool IsConnected
13+
{
14+
get { return isOpening; }
15+
}
16+
17+
private bool isOpening;
18+
19+
public WebSocketState ReadyState
20+
{
21+
get { return (WebSocketState)WebSocketManager.WebSocketGetState(instanceId); }
22+
}
1123

1224
public event EventHandler<OpenEventArgs> OnOpen;
1325
public event EventHandler<CloseEventArgs> OnClose;
@@ -92,6 +104,7 @@ public void SendAsync(byte[] data)
92104
internal void HandleOnOpen()
93105
{
94106
Log("OnOpen");
107+
isOpening = true;
95108
OnOpen?.Invoke(this, new OpenEventArgs());
96109
}
97110

@@ -110,13 +123,15 @@ internal void HandleOnMessageStr(string data)
110123
internal void HandleOnClose(ushort code, string reason)
111124
{
112125
Log($"OnClose, code: {code}, reason: {reason}");
126+
isOpening = false;
113127
OnClose?.Invoke(this, new CloseEventArgs(code, reason));
114128
WebSocketManager.Remove(instanceId);
115129
}
116130

117131
internal void HandleOnError(string msg)
118132
{
119133
Log("OnError, error: " + msg);
134+
isOpening = false;
120135
OnError?.Invoke(this, new ErrorEventArgs(msg));
121136
}
122137

@@ -144,4 +159,5 @@ static void Log(string msg)
144159
}
145160
}
146161
}
162+
147163
#endif

0 commit comments

Comments
 (0)