一、如何使所有在线的用户(客户端)接收到消息?
先在主GO程中启动全局广播函数:
创建一个全局管道变量message
全局广播函数遍历MAP数据结构 确定所有在线用户
将message管道中的信息依次发送给每一个用户的私有msg管道
每一个用户接收群发消息:
在处理每一个连接的子GO程中
再启动一个Go程负责监听自己的msg私有管道
并将写入msg管道的数据输出至连接对应的客户端
二、如何实现用户下线功能和超时退出?
在每一个连接的子GO程中
再启动一个GO程负责检查退出状态
使用select语句 检测主动退出
使用计时器实现超时退出
且在有新的消息产生时 重置计时器
三、对MAP的操作应当使用读写锁