下面我们来看看单聊的最终效果。
服务端

服务端启动之后,两个客户端陆续登录。
客户端1

客户端2

1. 客户端启动之后,我们在控制台输入用户名,服务端随机分配一个userId给客户端,这里我们省去了通过账号、密码注册的过程,userId就在服务端随机生成了,生产环境中可能会持久化在数据库,然后每次通过账号、密码去“捞”。
2. 当有两个客户端登录成功之后,在控制台输入userId+空格+消息,这里的userId是消息接收方的标识,消息接收方的控制台接着就会显示另外一个客户端发来的消息。
一对一单聊的核心逻辑其实就这么简单,稍加改动就可以用在生产环境中。下面我们就来一起学习如何实现一对一单聊。
一对一单聊的原理
一对一单聊的原理如下图所示。

1. A要和B聊天,首先A和B需要与服务器建立连接,然后进行一次登录流程,服务端保存用户标识和TCP连接的映射关系。
2. A发消息给B,首先需要将带有B标识的消息数据包发送到服务器,然后服务器从消息数据包中获得B的标识,找到对应B的连接,将消息发送给B。
内容摘自《跟闪电侠学Netty》
