- 实现了聊天消息发送功能,支持文本、图片、视频、音频、文件等多种消息类型 - 集成了文件上传下载功能,支持多媒体文件的传输和管理 - 添加了群组管理功能,包括创建群组、成员管理、权限控制等操作 - 实现了好友系统,支持好友添加、删除、分组等功能 - 集成了黑名单管理,提供用户屏蔽和解除屏蔽功能 - 添加了会话管理功能,支持对话列表、未读消息统计等 - 实现了历史消息查询和搜索功能 - 添加了实时连接状态管理和自动重连机制
117 行
2.2 KiB
Markdown
117 行
2.2 KiB
Markdown
# Go Server SDK
|
|
|
|
XuqmGroup 服务端 Go SDK,提供 IM 消息发送、群管理、Push 推送等能力。
|
|
|
|
---
|
|
|
|
## 安装
|
|
|
|
```bash
|
|
go get xuqinmin.com/xuqinmin12/XuqmGroup-ServerSDK-Go
|
|
```
|
|
|
|
---
|
|
|
|
## 初始化
|
|
|
|
```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` 绝不下发到客户端。
|
|
|
|
---
|
|
|
|
## 发送消息
|
|
|
|
```go
|
|
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)
|
|
```
|
|
|
|
### 发送群消息
|
|
|
|
```go
|
|
msg, err := client.SendMessage(xuqmsdk.SendMessageRequest{
|
|
ToID: "group_xxx",
|
|
ChatType: "GROUP",
|
|
MsgType: "TEXT",
|
|
Content: "大家好",
|
|
})
|
|
```
|
|
|
|
### 撤回消息
|
|
|
|
```go
|
|
err := client.RevokeMessage("message_id")
|
|
```
|
|
|
|
---
|
|
|
|
## 群管理
|
|
|
|
```go
|
|
// 创建群组
|
|
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 推送
|
|
|
|
```go
|
|
err := client.SendPush(xuqmsdk.SendPushRequest{
|
|
UserID: "user_001",
|
|
Title: "新消息",
|
|
Body: "你有一条未读消息",
|
|
Payload: map[string]string{"chatId": "user_002"},
|
|
})
|
|
```
|
|
|
|
---
|
|
|
|
## 错误处理
|
|
|
|
SDK 返回的错误实现了标准 `error` 接口。业务方可根据错误类型做不同处理:
|
|
|
|
```go
|
|
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 文档 →](/server/api)
|