Specification and Getting Started

Specification

聊天使用基于 TCP 的简单文本协议。该协议包含 utf-8 消息,由\n分隔。

客户端连接到服务器,发送第一行登录(login)名。之后,客户端可以使用以下语法,将消息发送给其他客户端:

  1. login1, login2, ... loginN: message

然后,每个指定的客户端都会收到一个from login: message信息。

可能的会话,如下所示

  1. Alice's 电脑: | 在 Bob's 电脑:
  2. > alice | > bob
  3. > bob: hello < from alice: hello
  4. | > alice, bob: hi!
  5. < from bob: hi!
  6. < from bob: hi! |

聊天服务器的主要挑战是跟踪大量并发连接。聊天客户端的主要挑战是,管理并发地传出消息,传入消息和用户键入。

Getting Started

让我们创建一个新的 Cargo 项目:

  1. $ cargo new a-chat
  2. $ cd a-chat

将以下行添加到Cargo.toml

  1. [dependencies]
  2. futures = "0.3.0"
  3. async-std = "1"