# Java Server SDK
XuqmGroup 服务端 Java SDK,提供 IM 消息发送、群管理、Push 推送等能力。
---
## 安装
Maven 在 `pom.xml` 中添加:
```xml
nexus-xuqm
https://nexus.xuqinmin.com/repository/android/
com.xuqm
xuqm-server-sdk
0.1.0
```
Gradle:
```kotlin
repositories {
maven { url = uri("https://nexus.xuqinmin.com/repository/android/") }
}
dependencies {
implementation("com.xuqm:xuqm-server-sdk:0.1.0")
}
```
---
## 初始化
```java
import com.xuqm.sdk.server.XuqmServerClient;
import com.xuqm.sdk.server.XuqmServerConfig;
XuqmServerClient client = new XuqmServerClient(XuqmServerConfig.builder()
.baseUrl("https://dev.xuqinmin.com")
.appId("your_app_id")
.appSecret("your_app_secret")
.build());
```
> 服务端 SDK 需要 `appSecret` 用于 HMAC 签名,`appSecret` 绝不下发到客户端。
---
## 发送消息
```java
import com.xuqm.sdk.server.model.SendMessageRequest;
import com.xuqm.sdk.server.model.ImMessage;
ImMessage msg = client.sendMessage(SendMessageRequest.builder()
.toId("user_002")
.chatType("SINGLE")
.msgType("TEXT")
.content("Hello from Java SDK!")
.build());
System.out.println("消息已发送: " + msg.getId());
```
### 发送群消息
```java
ImMessage msg = client.sendMessage(SendMessageRequest.builder()
.toId("group_xxx")
.chatType("GROUP")
.msgType("TEXT")
.content("大家好")
.build());
```
### 撤回消息
```java
client.revokeMessage("message_id");
```
---
## 群管理
```java
import com.xuqm.sdk.server.model.*;
// 创建群组
ImGroup group = client.createGroup(CreateGroupRequest.builder()
.name("项目讨论")
.memberIds(List.of("user_001", "user_002"))
.build());
// 添加群成员
client.addGroupMember("group_xxx", "user_003");
// 移除群成员
client.removeGroupMember("group_xxx", "user_003");
// 获取群列表
List groups = client.listGroups();
// 获取群成员
List members = client.listGroupMembers("group_xxx");
```
---
## Push 推送
```java
import com.xuqm.sdk.server.model.SendPushRequest;
client.sendPush(SendPushRequest.builder()
.userId("user_001")
.title("新消息")
.body("你有一条未读消息")
.payload("{\"chatId\":\"user_002\"}")
.build());
```
---
## 错误处理
```java
import com.xuqm.sdk.server.exception.XuqmApiException;
try {
ImMessage msg = client.sendMessage(request);
} catch (XuqmApiException e) {
System.err.printf("API 错误: status=%d, code=%d, message=%s%n",
e.getHttpStatus(), e.getCode(), e.getMessage());
}
```
[→ Server API 文档](/server/api)