3.1 规格说明与入门
原文链接: https://book.async.rs/tutorial/specification.html
规范
聊天程序使用基于 TCP 的简单文本协议。
协议由以 \n 分隔的 utf-8 消息组成。
客户端连接到服务器后,第一行发送登录名。
之后,客户端可以使用以下语法向其他客户端发送消息:
1
| login1, login2, ... loginN: message
|
每个指定的客户端随后会收到一条 from login: message 消息。
一次可能的会话可能如下所示:
1
2
3
4
5
6
7
| 在 Alice 的电脑上: | 在 Bob 的电脑上:
> alice | > bob
> bob: hello < from alice: hello
| > alice, bob: hi!
< from bob: hi!
< from bob: hi! |
|
聊天服务器的主要挑战是跟踪大量并发连接。
聊天客户端的主要挑战是管理并发的出站消息、入站消息和用户输入。
入门
让我们创建一个新的 Cargo 项目:
1
2
| $ cargo new a-chat
$ cd a-chat
|
在 Cargo.toml 中添加以下内容:
1
2
3
| [dependencies]
futures = "0.3.0"
async-std = "1"
|