XuqmGroup-Web/docs-site/docs/server/go-sdk.md
XuqmGroup 277e8ed7c6 feat(im): 添加即时消息SDK核心功能实现
- 实现了聊天消息发送功能,支持文本、图片、视频、音频、文件等多种消息类型
- 集成了文件上传下载功能,支持多媒体文件的传输和管理
- 添加了群组管理功能,包括创建群组、成员管理、权限控制等操作
- 实现了好友系统,支持好友添加、删除、分组等功能
- 集成了黑名单管理,提供用户屏蔽和解除屏蔽功能
- 添加了会话管理功能,支持对话列表、未读消息统计等
- 实现了历史消息查询和搜索功能
- 添加了实时连接状态管理和自动重连机制
2026-05-03 00:11:06 +08:00

2.2 KiB

Go Server SDK

XuqmGroup 服务端 Go SDK,提供 IM 消息发送、群管理、Push 推送等能力。


安装

go get xuqinmin.com/xuqinmin12/XuqmGroup-ServerSDK-Go

初始化

import xuqmsdk "xuqinmin.com/xuqinmin12/XuqmGroup-ServerSDK-Go"

client := xuqmsdk.NewClient(xuqmsdk.Config{
    BaseURL:   "https://dev.xuqinmin.com",
    AppID:     "your_app_id",
    AppSecret: "your_app_secret",
})

服务端 SDK 需要 appSecret 用于 HMAC 签名,appSecret 绝不下发到客户端。


发送消息

msg, err := client.SendMessage(xuqmsdk.SendMessageRequest{
    ToID:     "user_002",
    ChatType: "SINGLE",
    MsgType:  "TEXT",
    Content:  "Hello from Go SDK!",
})
if err != nil {
    log.Fatal(err)
}
log.Printf("消息已发送: %s", msg.ID)

发送群消息

msg, err := client.SendMessage(xuqmsdk.SendMessageRequest{
    ToID:     "group_xxx",
    ChatType: "GROUP",
    MsgType:  "TEXT",
    Content:  "大家好",
})

撤回消息

err := client.RevokeMessage("message_id")

群管理

// 创建群组
group, err := client.CreateGroup(xuqmsdk.CreateGroupRequest{
    Name:      "项目讨论",
    MemberIDs: []string{"user_001", "user_002"},
})

// 添加群成员
err = client.AddGroupMember("group_xxx", "user_003")

// 移除群成员
err = client.RemoveGroupMember("group_xxx", "user_003")

// 获取群列表
groups, err := client.ListGroups()

// 获取群成员
members, err := client.ListGroupMembers("group_xxx")

Push 推送

err := client.SendPush(xuqmsdk.SendPushRequest{
    UserID:  "user_001",
    Title:   "新消息",
    Body:    "你有一条未读消息",
    Payload: map[string]string{"chatId": "user_002"},
})

错误处理

SDK 返回的错误实现了标准 error 接口。业务方可根据错误类型做不同处理:

msg, err := client.SendMessage(req)
if err != nil {
    // 可断言为 *xuqmsdk.APIError 获取 HTTP 状态码和详细错误信息
    if apiErr, ok := err.(*xuqmsdk.APIError); ok {
        log.Printf("API 错误: status=%d, code=%d, message=%s", apiErr.Status, apiErr.Code, apiErr.Message)
    }
}

→ Server API 文档 →