|
1 | 1 |
|
2 | 2 | [(中文版)](README.md) |
3 | 3 |
|
4 | | -## Demo 线上测试地址 |
5 | | -- [http://39.105.150.229/UnityWebSocketDemo/](http://39.105.150.229/UnityWebSocketDemo/) |
| 4 | +### Demo Online Test |
6 | 5 |
|
7 | | -## UnityWebSocket 使用 |
| 6 | +- [http://39.105.150.229/UnityWebSocketDemo/](http://39.105.150.229/UnityWebSocketDemo/) |
8 | 7 |
|
9 | | -### 1. [最新版本下载](https://github.com/y85171642/UnityWebSocket/releases) |
| 8 | +### UnityWebSocket Usage |
10 | 9 |
|
11 | | -### 2. 使用方法: |
| 10 | +#### 1. Download the latest version |
12 | 11 |
|
| 12 | +- [https://github.com/y85171642/UnityWebSocket/releases](https://github.com/y85171642/UnityWebSocket/releases) |
13 | 13 |
|
14 | | -- 在 Unity 中导入 UnityWebSocket.unitypackage |
| 14 | +#### 2. Usage: |
15 | 15 |
|
16 | | - 需要 Scripting Runtime Version = .Net 4.x |
| 16 | +- Import UnityWebSocket.unitypackage in Unity, Require: |
17 | 17 |
|
18 | | - 需要 WebGL LinkerTarger = asm.js or Both |
| 18 | + * Require Scripting Runtime Version = .Net 4.x |
| 19 | + * Require WebGL LinkerTarger = asm.js or Both |
19 | 20 |
|
20 | | -- 使用 WebSocket |
| 21 | +- Easy to use WebSocket |
21 | 22 |
|
22 | 23 | ```csharp |
23 | | - // 命名空间 |
| 24 | + // the namespace |
24 | 25 | using UnityWebSocket; |
25 | 26 | using UnityWebSocket.Synchronized; |
26 | 27 |
|
27 | | - // 创建实例 |
| 28 | + // create instance |
28 | 29 | WebSocket scoket = new WebSocket(); |
29 | 30 |
|
30 | | - // 注册回调 |
| 31 | + // register callback |
31 | 32 | scoket.OnOpen += OnOpen; |
32 | 33 | scoket.OnClose += OnClose; |
33 | 34 | scoket.OnMessage += OnMessage; |
34 | 35 | socket.OnError += OnError; |
35 | 36 |
|
36 | | - // 连接 |
| 37 | + // connect |
37 | 38 | string address = "ws://echo.websocket.org"; |
38 | 39 | socket.ConnectAsync(address); |
39 | 40 |
|
40 | | - // 发送数据(两种发送方式) |
41 | | - socket.SendAsync(str); // 发送类型 String 类型数据 |
42 | | - socket.SendAsync(bytes); // 发送 byte[] 类型数据 |
| 41 | + // send data (tow ways) |
| 42 | + socket.SendAsync(str); // send String data |
| 43 | + socket.SendAsync(bytes); // send byte[] data |
43 | 44 |
|
44 | | - // 关闭连接 |
| 45 | + // close connection |
45 | 46 | socket.CloseAsync(); |
46 | 47 | ``` |
47 | 48 |
|
48 | | -- 详细使用方法可参考项目中的 [Example](UnityWebSocket/Assets/Scripts/Plugins/UnityWebSocket/Example/TestWebSocket.cs) 示例代码。 |
| 49 | +- more detail usage, see the [Example](UnityWebSocket/Assets/Scripts/Plugins/UnityWebSocket/Example/TestWebSocket.cs) code in project。 |
| 50 | + |
| 51 | +#### 3. Attention(Warning) |
49 | 52 |
|
50 | | -### 3. 模块说明 |
51 | | -- WebSocket.jslib |
52 | | -语法格式需要遵循 [asm.js](http://www.ruanyifeng.com/blog/2017/09/asmjs_emscripten.html)。 |
| 53 | +- there are many **WebSocket** class in different namespace, use in different situations. |
53 | 54 |
|
54 | | - 路径:Plugins/WebSocketJS/WebSocketJS.jslib |
55 | | - 作用:Unity发布WebGL版本会将其加入到js运行库中。 |
| 55 | + namespace | platform | sync style | description |
| 56 | + -|-|-|- |
| 57 | + UnityWebSocket.Synchronized | all | synchronized(no block) | **[recommend]** no need consider the problem by using unity component in asynchronized callback. |
| 58 | + UnityWebSocket.Uniform | all | asynchronized | consider the problem by using unity component in asynchronized callback. |
| 59 | + UnityWebSocket.WebGL | WebGL only | asynchronized | only run in WebGL platform. |
| 60 | + UnityWebSocket.NoWebGL | WebGL except | asynchronized | only run in not WebGL platforms. |
| 61 | + |
| 62 | +#### 4. WebGL Module Introduction |
56 | 63 |
|
57 | | -- WebSocket.cs |
| 64 | +- WebSocket.jslib, syntax follow to [asm.js](http://www.ruanyifeng.com/blog/2017/09/asmjs_emscripten.html)。 |
58 | 65 |
|
59 | | - 作用:WebSocket连接,可同时创建多个不同连接。 |
60 | | - 已经支持全平台使用。 |
| 66 | + Path: Plugins/WebSocketJS/WebSocketJS.jslib |
| 67 | + Fucntion:Unity will deploy it to web js runtime on WebGL platform. |
61 | 68 |
|
62 | 69 | - WebSocketReceiver.cs |
63 | 70 |
|
64 | | - 作用:与jslib交互,负责收发多个WebSocket消息。 |
65 | | - 该脚本在使用WebSocket时会自动加载到场景中,并添加到DonDestroyOnLoad。 |
| 71 | + Function: interact with jslib. this script set as DonDestroyOnLoad. |
66 | 72 |
|
67 | | -- Example场景 |
| 73 | +- Example Scene |
68 | 74 |
|
69 | | - 作用:WebSocket的使用方法示例。 |
| 75 | + Function: show how to use UnityWebSocket. |
70 | 76 |
|
71 | | -### 4. 注意(Warning) |
72 | | -- Unity2018 以上版本需要修改WebGL平台 Publishing Settings -> Linker Target 为 asm.js 或 Both。 |
73 | | -- 插件中多个命名空间中存在 **WebSocket** 类,适用不同环境。 |
| 77 | +#### 5. WebSocket Server |
74 | 78 |
|
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 文件。 |
| 79 | +- use Official Echo Test Server. refer to [Echo Test](http://www.websocket.org/echo.html). |
0 commit comments