Easemob IM Java SDK 是对环信IM 服务端API 的封装。
提供用户、群组等资源的操作管理能力。
- 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.6</version>
</dependency>
如果你使用的spring-boot是2.4.3以下版本的,则还需要在pom.xml中添加:
<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.6'
使用 Server SDK 的前提需要您准备:
-
- 环信 appKey
-
- 两种 appCredentials 中的其中之一:
- 2.1 环信 clientId, clientSecret
- 2.2 声网 appId, appCert
如果您有环信管理后台账号并创建过应用,请进入 这里 进行登录。
如图点击查看后,可以看到自己的appkey、Client ID、ClientSecret,用于SDK的初始化。
如果您没有环信管理后台账号,请进入 这里 进行注册账号,注册成功后请进行登录。
如图先添加应用(也就是创建appkey,自动生成Client ID、ClientSecret),添加成功后在应用列表中可以看到应用信息,点击查看可以看到自己的appkey、Client ID、ClientSecret,用于SDK的初始化。
如果您有声网 Console 后台账号并创建过项目,请先登录声网 Console 后台,点击这里,然后到"项目列表" -> 找到自己的项目点击"编辑"图标后,即可看到 App ID、APP 证书。
如果您没有声网Console后台账号,请先注册账号,点击这里,注册成功后按照步骤1操作。
EMService 是所有API的入口,可以这样初始化:
EMProperties properties = EMProperties.builder()
.setAppkey(appkey)
.setClientId(clientId)
.setClientSecret(clientSecret)
.setRealm(EMProperties.Realm.EASEMOB_REALM) // optional
.setBaseUri(baseUri) // optional
.setHttpConnectionPoolSize(10) // optional
.setServerTimezone("+8") // optional
.build();
EMService service = new EMService(properties);
EMProperties properties = EMProperties.builder()
.setAppkey(appkey)
.setAppId(appId)
.setAppCert(appCert)
.setRealm(EMProperties.Realm.AGORA_REALM)
.setBaseUri(baseUri) // optional
.setHttpConnectionPoolSize(10) // optional
.setServerTimezone("+8") // optional
.build();
EMService service = new EMService(properties);
根据业务资源,API分为:
- Attachment 用于上传下载附件
- Block 用于限制访问
- Contact 用于管理联系人
- Group 用于管理群组
- Message 用于发送消息
- User 用于管理用户
- Token 用于获取用户Token
- Room 用于管理聊天室
每个业务资源对应一个方法,例如,用户相关的API,都可以在.user()找到。
举个例子,我们要注册一个用户,就可以这样写:
EMService service;
service.user().create(username, password).block();
API的返回值是响应式的,如果希望阻塞,可以使用上面例子中的block()。
可以参考im-sdk-cli ,这是一个使用该SDK构建的CLI程序。
SDK的api文档在这里 。