服务端 SDK

更新时间: 2025/11/28 10:24:27

网易云信为服务端开发者提供了 Java SDK,提升您在多域名切换和调度策略、重试策略、监控、排查(trace)等场景中的使用体验。通过本 SDK,您可以轻松集成网易云信的多条业务线能力,实现账号管理、消息收发、群组管理、音视频通话等功能。

适用范围

0.9.0 版本起,本 SDK 支持网易云信多条业务线的统一管理:

  • 即时通讯 V2:即时通讯(NIM)的 10.x.x 系列 API,提供完整的即时通讯功能支持
  • 即时通讯 V1:即时通讯(NIM)的 3.1.0 ~ 9.x.x 系列 API,提供完整的即时通讯功能支持
  • 音视频通话 RTC:支持实时音视频通话服务
  • 短信服务:提供短信发送和管理功能
  • 信令:提供稳定可靠的信令通道,可用于搭建音视频场景下的呼叫邀请机制
  • 直播:支持直播相关服务接入
  • 点播:提供视频点播服务支持
  • 房间组件:支持房间相关功能管理
  • 网易会议组件:提供会议服务支持

环境要求

  • Java 版本:JDK 8 及以上
  • 生产环境:推荐使用 0.2.0+ 版本以获得企业级特性
  • Maven 支持:支持标准 Maven 依赖管理

获取方式

请前往 GitHub yunxin-server-sdk-java.git 克隆项目至您的本地。您可以通过以下命令克隆:

bashgit clone https://github.com/netease-im/yunxin-server-sdk-java.git

引入方式

SDK 依赖 JDK 8 及更高版本,请确保您的本地环境符合要求,然后将以下依赖添加到您的 pom.xml 文件中:

XML<dependency>
    <groupId>com.netease.nim</groupId>
    <artifactId>yunxin-server-sdk</artifactId>
    <version>LATEST</version> <!-- 请在查看仓库版本后替换为您实际引入的版本号 -->
</dependency>

SDK 版本更新可能引入新功能或修复问题,建议您定期检查和升级。如遇到相关问题,您可以在 SDK 仓库 提交问题(Issue)。

初始化客户端

在使用 SDK 前,您需要先初始化客户端并进行全局配置,其中的 your_app_keyyour_app_secret 可在 网易云信控制台 上获取:

Java// 初始化(全局单例)
String appkey = "your_app_key";
String appsecret = "your_app_secret";
int timeoutMillis = 5000;

YunxinApiHttpClient client = new YunxinApiHttpClient.Builder(appkey, appsecret)
        .timeoutMillis(timeoutMillis) // 全局超时配置
        .build();

使用模式

SDK 提供 基础 API (Raw Client)面向对象 API 两种客户端使用模式。在实际项目中,基础 Client 方式则更适合快速原型或简单集成场景,面向对象的客户端设计对于需要长期维护的代码更加友好。

基础 API(Raw Client)

直接通过 HTTP 方法调用网易云信 API:

Java// 创建账号示例
String path = "/user/create.action";

// 请求参数
Map<String, String> paramMap = new HashMap<>();
paramMap.put("accid", "zhangsan");

// 执行请求(可选:设置单次请求超时)
YunxinApiResponse response;
try {
    response = client.executeV1Api(path, paramMap);
} catch (YunxinSdkException e) {//这是一个RuntimeException
    // 请求失败
    System.err.println("register error, traceId = " + e.getTraceId());
    return;
}

面向对象 API

SDK 提供面向对象的封装,让代码更简洁、可读性更高:

Java// services
YunxinV1ApiServices services = new YunxinV1ApiServices(client);

// request
CreateAccountRequestV1 request = new CreateAccountRequestV1();
request.setAccid("zhangsan");
try {
    Result<CreateAccountResponseV1> result = services.getAccountService().createAccount(request);
    if (result.isSuccess()) {
        CreateAccountResponseV1 response = result.getResponse();
        // 注册成功
        System.out.println("register success, accid=" + response.getAccid() + ", token=" + response.getToken() + ", traceId=" + result.getTraceId());
    } else {
        // 注册失败,如参数错误、重复注册等
        System.err.println("register fail, code=" + result.getCode() + ", msg=" + result.getMsg() + ", traceId=" + result.getTraceId());
    }
} catch (YunxinSdkException e) {//这是一个RuntimeException
    // 超时等异常
    System.err.println("register error, endpoint = " + e.getContext().getEndpoint() + ", traceId=" + e.getTraceId());
}
此文档是否对你有帮助?
有帮助
去反馈
  • 适用范围
  • 环境要求
  • 获取方式
  • 引入方式
  • 初始化客户端
  • 使用模式
  • 基础 API(Raw Client)
  • 面向对象 API