|
| 1 | + |
| 2 | +[(English)](README_EN.md) |
| 3 | + |
| 4 | +## Demo 线上测试地址 |
| 5 | +- [http://39.105.150.229/UnityWebSocketDemo/](http://39.105.150.229/UnityWebSocketDemo/) |
| 6 | + |
| 7 | +## UnityWebSocket 使用 |
| 8 | + |
| 9 | +### 1. [最新版本下载](https://github.com/y85171642/UnityWebSocket/releases) |
| 10 | + |
| 11 | +### 2. 使用方法: |
| 12 | + |
| 13 | + |
| 14 | +- 在 Unity 中导入 UnityWebSocket.unitypackage |
| 15 | + |
| 16 | + 需要 Scripting Runtime Version = .Net 4.x |
| 17 | + |
| 18 | + 需要 WebGL LinkerTarger = asm.js or Both |
| 19 | + |
| 20 | +- 使用 WebSocket |
| 21 | + |
| 22 | + ```csharp |
| 23 | + // 命名空间 |
| 24 | + using UnityWebSocket; |
| 25 | + using UnityWebSocket.Synchronized; |
| 26 | + |
| 27 | + // 创建实例 |
| 28 | + WebSocket scoket = new WebSocket(); |
| 29 | + |
| 30 | + // 注册回调 |
| 31 | + scoket.OnOpen += OnOpen; |
| 32 | + scoket.OnClose += OnClose; |
| 33 | + scoket.OnMessage += OnMessage; |
| 34 | + socket.OnError += OnError; |
| 35 | + |
| 36 | + // 连接 |
| 37 | + string address = "ws://echo.websocket.org"; |
| 38 | + socket.ConnectAsync(address); |
| 39 | + |
| 40 | + // 发送数据(两种发送方式) |
| 41 | + socket.SendAsync(str); // 发送类型 String 类型数据 |
| 42 | + socket.SendAsync(bytes); // 发送 byte[] 类型数据 |
| 43 | +
|
| 44 | + // 关闭连接 |
| 45 | + socket.CloseAsync(); |
| 46 | + ``` |
| 47 | + |
| 48 | +- 详细使用方法可参考项目中的 [Example](UnityWebSocket/Assets/Scripts/Plugins/UnityWebSocket/Example/TestWebSocket.cs) 示例代码。 |
| 49 | + |
| 50 | +### 3. 模块说明 |
| 51 | +- WebSocket.jslib |
| 52 | +语法格式需要遵循 [asm.js](http://www.ruanyifeng.com/blog/2017/09/asmjs_emscripten.html)。 |
| 53 | + |
| 54 | + 路径:Plugins/WebSocketJS/WebSocketJS.jslib |
| 55 | + 作用:Unity发布WebGL版本会将其加入到js运行库中。 |
| 56 | + |
| 57 | +- WebSocket.cs |
| 58 | + |
| 59 | + 作用:WebSocket连接,可同时创建多个不同连接。 |
| 60 | + 已经支持全平台使用。 |
| 61 | + |
| 62 | +- WebSocketReceiver.cs |
| 63 | + |
| 64 | + 作用:与jslib交互,负责收发多个WebSocket消息。 |
| 65 | + 该脚本在使用WebSocket时会自动加载到场景中,并添加到DonDestroyOnLoad。 |
| 66 | + |
| 67 | +- Example场景 |
| 68 | + |
| 69 | + 作用:WebSocket的使用方法示例。 |
| 70 | + |
| 71 | +### 4. 注意(Warning) |
| 72 | +- Unity2018 以上版本需要修改WebGL平台 Publishing Settings -> Linker Target 为 asm.js 或 Both。 |
| 73 | +- 插件中多个命名空间中存在 **WebSocket** 类,适用不同环境。 |
| 74 | + |
| 75 | + 命名空间 | 平台 | 方式 | 说明 |
| 76 | + -|-|-|- |
| 77 | + UnityWebSocket.Synchronized | 全平台 | 同步(无阻塞) | **[推荐]** 无需考虑异步回调使用 Unity 组件的问题。 |
| 78 | + UnityWebSocket.Uniform | 全平台 | 异步 | 需要考虑异步回调使用 Unity 组件的问题。 |
| 79 | + UnityWebSocket.WebGL | WebGL平台 | 异步 | 仅支持WebGL平台下的通信。 |
| 80 | + UnityWebSocket.NoWebGL | 非WebGL平台 | 异步 | 仅支持非WebGL平台下的通信。 |
| 81 | + |
| 82 | +### 5. WebSocket服务器 |
| 83 | +- 使用官方提供的 Echo Test 服务器。参考 [Echo Test](http://www.websocket.org/echo.html)。 |
| 84 | + |
| 85 | +### 6. 版本记录 |
| 86 | + |
| 87 | +#### v2.0 |
| 88 | +- 移除 websocket-sharp 插件,使用 .Net 4.x 内置的 ClientWebSocket 作为非 WebGL 平台下 WebSocket 插件。 |
| 89 | +- 添加**同步方式**的WebSocket ,使用者不必再考虑**异步回调**中使用 Unity 组件的问题。 |
| 90 | + |
| 91 | +#### v1.3.2 |
| 92 | +- 修复 非ssl连接,使用sslConfiguration bug。 |
| 93 | + |
| 94 | +#### v1.3.1 |
| 95 | +- 修复 Tls error,添加默认协议 Tls,Tls11,Tls12。 |
| 96 | + |
| 97 | +#### v1.3 |
| 98 | +- 移除服务器Demo,改用 [websocket-sharp](http://www.websocket.org/echo.html) 官方提供的测试服务器。 |
| 99 | +- 添加 PlayerSetting -> Linker Target 属性检测。 |
| 100 | + |
| 101 | +#### v1.2.2 - pre |
| 102 | +- support for wss(ssl) 支持SSL协议格式(更新了websocket-sharp源码)。 |
| 103 | +- 服务器Demo尚未支持 SSL。会在未来版本支持。 |
| 104 | + |
| 105 | +#### v1.2.1 |
| 106 | +- fix 非WebGL平台打包兼容BUG(屏蔽websocket-jslib部分代码)。 |
| 107 | + |
| 108 | +#### v1.2 |
| 109 | +- 重构代码,规范代码,模块整理。 |
| 110 | +- 规范接口,参考websocket-sharp结构,使用EventHandler方式处理事件。 |
| 111 | +- 添加了字符串数据收发的支持。 |
| 112 | +- jslib中添加了获取socket.readyState的方法。 |
| 113 | +- jslib中的SendMessage参数整理。 |
| 114 | +- fix some Bugs. |
| 115 | + |
| 116 | +#### v1.1 |
| 117 | +- 多平台支持,使用websocket-sharp 开源插件。 |
| 118 | +- 完善项目命名空间,目录结构。 |
| 119 | +- WebSocket增加异步连接发送方法。(webgl平台下仍调用同步方式) |
| 120 | +- 添加开发分支,git管理方式调整。 |
| 121 | + |
| 122 | +#### v1.0 |
| 123 | +- 支持单客户端同时创建多个不同WebSocket链接。 |
| 124 | +- 添加OnError错误回调。错误码对应错误原因,参考jslib文件。 |
| 125 | +- 删除Alert功能(与WebSocket无关,按需求自行添加即可)。 |
| 126 | +- Close Event Code 作为链接断开错误信息处理。 |
| 127 | +- jslib 内容完善,增加Map管理websocket实例。 |
| 128 | +- 修改 State 枚举对应到WebSocket ReadyState。 |
| 129 | +- 添加 Release Demo Build 文件。 |
0 commit comments