一、前言
在上一章节我们实现了好友与好友的通信流程,可以简单回忆下我们是从对话框中选择好友进行发送信息。那么我们的对话框中还有一个默认的群组,接下来我们主要实现用户群组的通信。群组通信在 Netty 的实现中,是需要将用户的通信管道 Channel
放到 ChannelGroup
中进行群发消息,这样只要在这个通信管道组里的用户都可以收到消息。接下来我们实现具体的逻辑功能。
- 我们的群组目前是一个默认群组,默认会在数据库中把用户初始化到这个群组中,学习的小伙伴也也可以拿到源代码后扩展功能为创建群组加好友
二、流程设计
- 从流程图上可以看到,与好友通信和群组通信的过程还是比较像的,但是在服务端还是有一个比较大的差异,就是群组通信需要使用到;
ChannelGroup
。在后续的代码中会有所体现。 - 另外群组通信每一个用户发送消息,是需要把自己的;id、昵称、头像一并发送,当然这些固定的信息可以保存到客户端本地,一节省通信时间损耗。
- 当然这里同样需要将群组的消息进行异步落库,保存群组的聊天记录。聊天记录这些信息在我们设计开发用户登录后,都会进行从数据库初始化展示到聊天面板中。
三、工程代码
根据我们的工程图稿,会涉及到代码块如下;