Skip to content

Commit 2837ab9

Browse files
committed
v2.8.6
## Changes - [BUGFIX] #41 未关闭 WebSocket 的条件下调用 Application.Quit() 会导致 Unity 应用程序未响应 - 支持 Unity 6000, WebAssembly 2023
1 parent 5f7a599 commit 2837ab9

File tree

5 files changed

+68
-18
lines changed

5 files changed

+68
-18
lines changed

Assets/UnityWebSocket/Demo/UnityWebSocketDemo.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -174,14 +174,6 @@ private void Socket_OnError(object sender, ErrorEventArgs e)
174174
AddLog(string.Format("Error: {0}", e.Message));
175175
}
176176

177-
private void OnApplicationQuit()
178-
{
179-
if (socket != null && socket.ReadyState != WebSocketState.Closed)
180-
{
181-
socket.CloseAsync();
182-
}
183-
}
184-
185177
private int frame = 0;
186178
private float time = 0;
187179
private float fps = 0;

Assets/UnityWebSocket/Plugins/WebGL/WebSocket.jslib

Lines changed: 61 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,19 @@ var WebSocketLibrary =
2222
onMessage: null,
2323
onMessageStr: null,
2424
onError: null,
25-
onClose: null
25+
onClose: null,
26+
27+
/* Support Unity 6000 */
28+
support6000: false
29+
},
30+
31+
/**
32+
* Support Unity 6000
33+
*
34+
*/
35+
WebSocketSetSupport6000: function()
36+
{
37+
webSocketManager.support6000 = true;
2638
},
2739

2840
/**
@@ -154,7 +166,14 @@ var WebSocketLibrary =
154166

155167
instance.ws.onopen = function()
156168
{
157-
{{{ makeDynCall('vi', 'webSocketManager.onOpen') }}}(instanceId);
169+
if (webSocketManager.support6000)
170+
{
171+
{{{ makeDynCall('vi', 'webSocketManager.onOpen') }}}(instanceId);
172+
}
173+
else
174+
{
175+
Module.dynCall_vi(webSocketManager.onOpen, instanceId);
176+
}
158177
};
159178

160179
instance.ws.onmessage = function(ev)
@@ -166,7 +185,14 @@ var WebSocketLibrary =
166185
writeArrayToMemory(array, buffer);
167186
try
168187
{
169-
{{{ makeDynCall('viii', 'webSocketManager.onMessage') }}}(instanceId, buffer, array.length);
188+
if (webSocketManager.support6000)
189+
{
190+
{{{ makeDynCall('viii', 'webSocketManager.onMessage') }}}(instanceId, buffer, array.length);
191+
}
192+
else
193+
{
194+
Module.dynCall_viii(webSocketManager.onMessage, instanceId, buffer, array.length);
195+
}
170196
}
171197
finally
172198
{
@@ -180,7 +206,14 @@ var WebSocketLibrary =
180206
stringToUTF8(ev.data, buffer, length);
181207
try
182208
{
183-
{{{ makeDynCall('vii', 'webSocketManager.onMessageStr') }}}(instanceId, buffer);
209+
if (webSocketManager.support6000)
210+
{
211+
{{{ makeDynCall('vii', 'webSocketManager.onMessageStr') }}}(instanceId, buffer);
212+
}
213+
else
214+
{
215+
Module.dynCall_vii(webSocketManager.onMessageStr, instanceId, buffer);
216+
}
184217
}
185218
finally
186219
{
@@ -197,7 +230,14 @@ var WebSocketLibrary =
197230
writeArrayToMemory(array, buffer);
198231
try
199232
{
200-
{{{ makeDynCall('viii', 'webSocketManager.onMessage') }}}(instanceId, buffer, array.length);
233+
if (webSocketManager.support6000)
234+
{
235+
{{{ makeDynCall('viii', 'webSocketManager.onMessage') }}}(instanceId, buffer, array.length);
236+
}
237+
else
238+
{
239+
Module.dynCall_viii(webSocketManager.onMessage, instanceId, buffer, array.length);
240+
}
201241
}
202242
finally
203243
{
@@ -221,7 +261,14 @@ var WebSocketLibrary =
221261
stringToUTF8(msg, buffer, length);
222262
try
223263
{
224-
{{{ makeDynCall('vii', 'webSocketManager.onError') }}}(instanceId, buffer);
264+
if (webSocketManager.support6000)
265+
{
266+
{{{ makeDynCall('vii', 'webSocketManager.onError') }}}(instanceId, buffer);
267+
}
268+
else
269+
{
270+
Module.dynCall_vii(webSocketManager.onError, instanceId, buffer);
271+
}
225272
}
226273
finally
227274
{
@@ -237,7 +284,14 @@ var WebSocketLibrary =
237284
stringToUTF8(msg, buffer, length);
238285
try
239286
{
240-
{{{ makeDynCall('viii', 'webSocketManager.onClose') }}}(instanceId, ev.code, buffer);
287+
if (webSocketManager.support6000)
288+
{
289+
{{{ makeDynCall('viii', 'webSocketManager.onClose') }}}(instanceId, ev.code, buffer);
290+
}
291+
else
292+
{
293+
Module.dynCall_viii(webSocketManager.onClose, instanceId, ev.code, buffer);
294+
}
241295
}
242296
finally
243297
{

Assets/UnityWebSocket/Scripts/Runtime/Core/Settings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ public static class Settings
77
public const string QQ_GROUP_LINK = "https://qm.qq.com/cgi-bin/qm/qr?k=KcexYJ9aYwogFXbj2aN0XHH5b2G7ICmd";
88
public const string EMAIL = "[email protected]";
99
public const string AUHTOR = "psygames";
10-
public const string VERSION = "2.8.5";
10+
public const string VERSION = "2.8.6";
1111
}
1212
}

Assets/UnityWebSocket/Scripts/Runtime/Implementation/NoWebGL/WebSocketManager.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ private void Update()
5555
}
5656
}
5757

58-
#if UNITY_EDITOR
5958
private void OnDisable()
6059
{
6160
SocketAbort();
@@ -68,7 +67,6 @@ private void SocketAbort()
6867
sockets[i].Abort();
6968
}
7069
}
71-
#endif
7270
}
7371
}
7472
#endif

Assets/UnityWebSocket/Scripts/Runtime/Implementation/WebGL/WebSocketManager.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ internal static class WebSocketManager
6161

6262
[DllImport("__Internal")]
6363
public static extern void WebSocketSetOnClose(OnCloseCallback callback);
64+
65+
[DllImport("__Internal")]
66+
public static extern void WebSocketSetSupport6000();
6467

6568
/* If callbacks was initialized and set */
6669
private static bool isInitialized = false;
@@ -73,6 +76,9 @@ private static void Initialize()
7376
WebSocketSetOnMessageStr(DelegateOnMessageStrEvent);
7477
WebSocketSetOnError(DelegateOnErrorEvent);
7578
WebSocketSetOnClose(DelegateOnCloseEvent);
79+
#if UNITY_6000_0_OR_NEWER
80+
WebSocketSetSupport6000();
81+
#endif
7682

7783
isInitialized = true;
7884
}

0 commit comments

Comments
 (0)