-
在 Unity 中导入 UnityWebSocket.unitypackage,需要:
* 需要 Scripting Runtime Version = .Net 4.x * 需要 WebGL LinkerTarger = asm.js or Both -
使用 WebSocket
// 命名空间 using UnityWebSocket; using UnityWebSocket.Synchronized; // 创建实例 WebSocket scoket = new WebSocket(); // 注册回调 scoket.OnOpen += OnOpen; scoket.OnClose += OnClose; scoket.OnMessage += OnMessage; socket.OnError += OnError; // 连接 string address = "ws://echo.websocket.org"; socket.ConnectAsync(address); // 发送数据(两种发送方式) socket.SendAsync(str); // 发送类型 String 类型数据 socket.SendAsync(bytes); // 发送 byte[] 类型数据 // 关闭连接 socket.CloseAsync();
-
详细使用方法可参考项目中的 Example 示例代码。
-
插件中多个命名空间中存在 WebSocket 类,适用不同环境。
命名空间 平台 方式 说明 UnityWebSocket.Synchronized 全平台 同步(无阻塞) [推荐] 无需考虑异步回调使用 Unity 组件的问题。 UnityWebSocket.Uniform 全平台 异步 需要考虑异步回调使用 Unity 组件的问题。 UnityWebSocket.WebGL WebGL平台 异步 仅支持WebGL平台下的通信。 UnityWebSocket.NoWebGL 非WebGL平台 异步 仅支持非WebGL平台下的通信。
-
WebSocket.jslib 语法格式需要遵循 asm.js。
路径:Plugins/WebSocketJS/WebSocketJS.jslib 作用:Unity发布WebGL版本会将其加入到js运行库中。 -
WebSocketReceiver.cs
作用:与 jslib 交互,负责收发多个WebSocket消息。 该脚本在使用WebSocket时会自动加载到场景中,并添加到DonDestroyOnLoad。 -
Example 场景
作用:WebSocket的使用方法示例。
- 使用官方提供的 Echo Test 服务器。参考 Echo Test。