介绍

Server SDK是对环信IM 服务端API 的封装,这样做是为了节省服务器端开发者对接环信API的时间,只需要配置自己的appkey相关信息即可使用。

功能

Server SDK提供了用户、消息、群组、聊天室等资源的操作管理能力。

依赖

  • Java 1.8
  • Reactor(io.projectreactor:reactor-bom:2020.0.4)

安装

如果你的项目使用Maven构建并且spring boot是2.4.3以上版本,可以在pom.xml中添加下面代码:

<dependency>
    <groupId>com.easemob.im</groupId>
    <artifactId>im-sdk-core</artifactId>
    <version>0.3.0</version>
</dependency>

示例:

如果你使用的spring-boot是2.4.3以下版本的,需要在pom.xml中添加:

请注意是将 netty-bom 与 reactor-bom 加到 <dependencyManagement></dependencyManagement> 内

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-bom</artifactId>
                <version>4.1.59.Final</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>io.projectreactor</groupId>
                <artifactId>reactor-bom</artifactId>
                <version>2020.0.4</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

示例:

如果你的项目使用Gradle构建,可以在build.grade中添加下面代码:

implementation 'com.easemob.im:im-sdk-core:0.3.0'

准备

在使用Server SDK之前,需要准备环信appkey、Client ID、ClientSecre。

如果你有环信管理后台账号并创建过应用,请先登录环信管理后台,点击 这里,然后到“应用列表” → 点击“查看”即可获取到appkey、Client ID、ClientSecret。

如果你没有环信管理后台账号,请先注册账号,点击 这里,注册成功后请登录,然后点击“添加应用”,添加成功后点击“查看”即可获取到appkey、Client ID、ClientSecret。

使用

EMService是所有API的入口,可以这样初始化:

EMProperties properties = EMProperties.builder()
        .setAppkey(cliProperties.getAppkey())
        .setClientId(cliProperties.getClientId())
        .setClientSecret(cliProperties.getClientSecret())
        .build();

EMService service = new EMService(properties);

具体请参考 im-sdk-cli 中的IMCliConfiguration

根据业务资源,API分为:

每个业务资源对应一个方法,例如,用户相关的API,都可以在.user()找到。

举个例子,我们要注册一个用户,就可以这样写:

EMService service;
service.user().create(username, password).block();

API的返回值是响应式的,如果希望阻塞,可以使用上面例子中的block()。

Demo

可以参考 im-sdk-cli ,这是一个使用该SDK构建的CLI程序。

参考

SDK的api文档在 这里

Server SDK开源地址以及文档说明在 这里


Easemob IM CLI

Easemob IM CLI是基于Easemob IM Java SDK开发的控制台项目,旨在为开发者提供方便快捷的命令行界面来调用服务端API,同时也是Easemob IM Java SDK的使用示例。

安装

1.自动安装

(1)执行安装脚本(在终端执行)

sh -c "$(curl -fsSL https://raw.githubusercontent.com/easemob/easemob-im-server-sdk/master/im-sdk-cli/install.sh)"

或:

sh -c "$(wget https://raw.githubusercontent.com/easemob/easemob-im-server-sdk/master/im-sdk-cli/install.sh -O -)"

(2) 添加环境变量 向 ~/.zshrc~/.bashrc 中添加以下命令(取决于您使用的SHELL):

alias im='java -jar ~/.easemob/im-sdk-cli.jar'

(3) 刷新环境变量

source ~/.zshrc 或 ~/.bashrc

这将会将程序安装至 ~/.easemob/ 中,并将相关命令加入系统环境变量

2.手动安装

(1) 编译打包

git clone https://github.com/easemob/easemob-im-server-sdk.git
cd /easemob-im-server-sdk
mvn package -Dmaven.test.skip=true
mkdir ~/.easemob
cp im-sdk-cli/target/im-sdk-cli-x.x.x.jar ~/.easemob/im-sdk-cli.jar

(2) 添加环境变量 向 ~/.zshrc~/.bashrc 中添加以下命令(取决于您使用的SHELL):

alias im='java -jar ~/.easemob/im-sdk-cli.jar'

(3) 刷新环境变量

source ~/.zshrc 或 ~/.bashrc

配置

IM CLI 会从 ~/.easemob/config.properties 中读取配置文件,您需要从 环信通讯云管理后台来获取您的应用开发者密钥并填写到此处。

vim ~/.easemob/config.properties

im.appkey=your-appkey
im.client-id=your-app-client-id
im.client-secret=your-app-client-secret

体验

# 创建一个用户,用户名为test-user,密码为test-password(下面的命令请在终端执行)
❯ im create user test-user test-password

done

Easemob IM CLI详细使用文档在 这里

常见问题

集成问题

1.如果您想看Server SDK的请求与响应,可以在配置文件中添加:

logging.level.com.easemob.im.http=debug

注意事项

Server SDK是对环信IM 服务端API 的封装,但并没有封装所有的API,只封装了开发者常用的API,点击 这里 查看Server SDK API。

对于注册环信id的规则,Server SDK有自己的限制, 正则为^[a-z][0-9a-z-]{1,32}$,这点与 官网文档 中说明的环信id规则是有区别的,这样做是因为目前环信id注册的限制范围比较广,Server SDK考虑缩小环信id注册的限制范围使其更加规范,在此说明一下。

交流互动

您在集成以及使用Server SDK过程中遇到的任何问题,可以加入QQ群进行交流,便于解决您所遇到的问题。

群号:883941811