快速开始页新增 Flutter、H5、小程序客户端及 Go/Java/Python 服务端 SDK 入口;新增 Java Server SDK 文档;演示项目页补充 Flutter Demo、 H5 演示和服务端示例卡片;VitePress 侧边栏增加 Java SDK 和 WebSocket 协议链接。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
145 行
2.7 KiB
Markdown
145 行
2.7 KiB
Markdown
# Java Server SDK
|
||
|
||
XuqmGroup 服务端 Java SDK,提供 IM 消息发送、群管理、Push 推送等能力。
|
||
|
||
---
|
||
|
||
## 安装
|
||
|
||
Maven 在 `pom.xml` 中添加:
|
||
|
||
```xml
|
||
<repository>
|
||
<id>nexus-xuqm</id>
|
||
<url>https://nexus.xuqinmin.com/repository/android/</url>
|
||
</repository>
|
||
|
||
<dependency>
|
||
<groupId>com.xuqm</groupId>
|
||
<artifactId>xuqm-server-sdk</artifactId>
|
||
<version>0.1.0</version>
|
||
</dependency>
|
||
```
|
||
|
||
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<ImGroup> groups = client.listGroups();
|
||
|
||
// 获取群成员
|
||
List<ImUser> 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)
|