1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
本目录包含 `flare-core` 库的各种使用示例,展示了不同的构建模式和协议支持。
使用闭包定义消息处理逻辑,无需实现 trait,适合快速开发。
**特点:**
- ----
**启动命令:**
```bash
RUST_LOG=info cargo run --example simple_server
```
**特点:**
- ---
**启动命令:**
```bash
RUST_LOG=info cargo run --example simple_client
```
使用 trait 实现消息处理,支持多协议和共享连接管理,适合需要更多控制的场景。
**特点:**
- -----
**启动命令:**
```bash
RUST_LOG=info cargo run --example observer_server
```
**特点:**
- ---
**启动命令:**
```bash
RUST_LOG=info cargo run --example observer_client
```
最完整的实现,支持所有功能特性,推荐用于生产环境。
**特点:**
- ------
**启动命令:**
```bash
RUST_LOG=info cargo run --example flare_chat_server
```
**特点:**
- -----
**启动命令:**
```bash
RUST_LOG=info cargo run --example flare_chat_client -- user123
```
使用基础结构直接构建 QUIC 客户端和服务端,展示 QUIC 协议的使用。
**特点:**
- ---
**启动命令:**
```bash
RUST_LOG=info cargo run --example quic_server
```
**特点:**
- --
**启动命令:**
```bash
RUST_LOG=info cargo run --example quic_client
```
**特点:**
- -
**启动命令:**
```bash
TRANSPORT_PROTOCOL=tcp RUST_LOG=info cargo run --example flare_chat_server --features tcp
RUST_LOG=info cargo run --example tcp_client --features tcp
```
**`flare_chat_client` 手动指定协议:**
```bash
RUST_LOG=info cargo run --example flare_chat_client --features tcp -- user1 --protocol tcp
RUST_LOG=info cargo run --example flare_chat_client -- user1 -p quic
TRANSPORT_PROTOCOL=websocket RUST_LOG=info cargo run --example flare_chat_client
```
使用基础结构直接构建 WebSocket 客户端和服务端,展示 WebSocket 协议的使用。
**特点:**
- ---
**启动命令:**
```bash
RUST_LOG=info cargo run --example websocket_server
```
**特点:**
- --
**启动命令:**
```bash
RUST_LOG=info cargo run --example websocket_client
```
演示如何扩展 `flare-core` 的压缩、加密和序列化能力,适合验证插件化协议能力的接入方式。
**特点:**
- ---
**启动命令:**
```bash
RUST_LOG=info cargo run --example custom_extensions_example -- server
RUST_LOG=info cargo run --example custom_extensions_example -- client
```
在浏览器中运行 `flare-core` WebSocket 客户端栈(`wasm32-unknown-unknown`)。
**特点:**
- ---
**构建与运行:**
```bash
cd examples/wasm_websocket_client
wasm-pack build --target web --out-dir pkg
cd ../.. && RUST_LOG=info cargo run --example flare_chat_server
python3 -m http.server 3000
```
详见 [`wasm_websocket_client/README.md`](wasm_websocket_client/README.md)。
- -
```bash
cargo build --examples
cargo run --example <example_name>
```
1. 2.3.
所有示例都实现了基本的聊天室功能:
- ---
不同示例展示了不同的构建方式和功能特性,可以根据需求选择合适的示例作为起点。