实时聊天应用 #

一、系统概述 #

1.1 功能模块 #

  • 实时消息
  • 聊天室
  • 在线状态
  • 消息历史

二、WebSocket实现 #

2.1 连接管理 #

go
type Client struct {
    ID     string
    Name   string
    Room   string
    Conn   *websocket.Conn
}

type Room struct {
    ID      string
    Clients map[string]*Client
}

type Hub struct {
    Rooms    map[string]*Room
    Register chan *Client
    Message  chan *Message
}

type Message struct {
    Room    string `json:"room"`
    Sender  string `json:"sender"`
    Content string `json:"content"`
    Time    string `json:"time"`
}

2.2 WebSocket处理 #

go
app.Get("/ws/:room/:user", websocket.New(func(c *websocket.Conn) {
    room := c.Params("room")
    user := c.Params("user")
    
    client := &Client{
        ID:   uuid.New().String(),
        Name: user,
        Room: room,
        Conn: c,
    }
    
    hub.Register <- client
    
    for {
        _, msg, err := c.ReadMessage()
        if err != nil {
            break
        }
        
        message := &Message{
            Room:    room,
            Sender:  user,
            Content: string(msg),
            Time:    time.Now().Format(time.RFC3339),
        }
        
        hub.Message <- message
    }
}))

三、总结 #

3.1 聊天应用要点 #

要点 说明
连接管理 维护WebSocket连接
消息广播 实时消息推送
房间管理 聊天室隔离
在线状态 用户状态管理

3.2 学习完成 #

恭喜你完成了Fiber框架的学习!现在你已经掌握了从基础到实战的完整知识体系。

最后更新:2026-03-28