Skip to content

kenuiuc/easemob-im-server-sdk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Easemob IM Java SDK build codecov

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 的前提需要您准备:

    1. 环信 appKey
    1. 两种 appCredentials 中的其中之一:
    • 2.1 环信 clientId, clientSecret
    • 2.2 声网 appId, appCert

获取环信 appKey, clientId, clientSecret

如果您有环信管理后台账号并创建过应用,请进入 这里 进行登录。 图片

如图点击查看后,可以看到自己的appkey、Client ID、ClientSecret,用于SDK的初始化。

如果您没有环信管理后台账号,请进入 这里 进行注册账号,注册成功后请进行登录。 图片

如图先添加应用(也就是创建appkey,自动生成Client ID、ClientSecret),添加成功后在应用列表中可以看到应用信息,点击查看可以看到自己的appkey、Client ID、ClientSecret,用于SDK的初始化。

获取声网 appId, appCert

如果您有声网 Console 后台账号并创建过项目,请先登录声网 Console 后台,点击这里,然后到"项目列表" -> 找到自己的项目点击"编辑"图标后,即可看到 App ID、APP 证书。

如果您没有声网Console后台账号,请先注册账号,点击这里,注册成功后按照步骤1操作。

使用

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

1. 使用 Easemob App Credentials 的情况

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);

2. 使用 Agora App Credentials 的情况

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分为:

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

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

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

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

DEMO

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

参考

SDK的api文档在这里

About

IM server SDK

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 94.7%
  • Shell 5.3%