
需求:
1:某个人进房,另外一个人再进房,然后在同一个房间,限制最大人数
2:实现某人进房给notice
3:房间只要有人说话,其他人都能收到信息。
4:每秒钟检测房间是否有人掉线,如果有人掉线,则给与提示。
go实现功能整理:
1:需要一个登录界面,一个聊天界面
2:websocket协议
3:beego框架
交互流程图如下:

界面效果图(界面丑,表示抱歉,不是专业前端):


核心代码结构介绍:
全局的websocket连接结构:
type WebSocketClient struct {
Client map[*Subscriber]bool
RoomNum map[string]int
Mu sync.RWMutex
}房间用户订阅者:
type Subscriber struct {
username string
room string
conn *websocket.Conn
messages chan []byte
}匿名在线网页聊天室节前会把文章整理完。