Server SDK
介绍
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.2.5</version>
</dependency>
示例:
如果你使用的spring-boot是2.4.3以下版本的,需要在pom.xml中添加:
<properties>
<netty.version>4.1.59.Final</netty.version>
<reactor-bom.version>2020.0.4</reactor-bom.version>
</properties>
示例:
如果你的项目使用Gradle构建,可以在build.grade中添加下面代码:
implementation 'com.easemob.im:im-sdk-core:0.2.5'
使用
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分为:
- Attachment 用于上传下载附件
- Block 用于限制访问
- Contact 用于管理联系人
- Group 用于管理群组
- Message 用于发送消息
- User 用于管理用户
- Room 用于管理聊天室
每个业务资源对应一个方法,例如,用户相关的API,都可以在.user()找到。
举个例子,我们要注册一个用户,就可以这样写:
EMService service;
service.user().create(username, password).block();
API的返回值是响应式的,如果希望阻塞,可以使用上面例子中的block()。
Demo
可以参考 im-sdk-cli ,这是一个使用该SDK构建的CLI程序。
参考
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