com.hn.im.readme.md Maven / Gradle / Ivy
## im工具类
现已集成环信(采用jersey 去除http) 待优化
## 环信
Api:http://docs-im.easemob.com/im/server/ready/intro
在 Java 中,REST client 实现方式有多种,比如 JBOss RestEasy、Sun Jersey、Dropwizard、Apache HTTPClient。我们推荐使用 Jersey 来调用环信的 REST 服务。
Jersy 2.x 实现了 JAX-RS 2.0 的规范,并且提供了异步的支持,但是 Jersey 2.x 需要 JDK 1.7 的支持,
所以如果你的服务器端程序还没有办法使用 JDK 1.7,那么需要使用 Jersey 1.x 的版本。
也有很多人直接使用 Apache Http Client,我们并不推荐直接使用这个库,主要是因为这个库相对比较底层,需要自己处理的东西很多,API 也相对繁琐。
## 重要提醒
重要提醒:获取 token 时服务器会返回 token 有效期,具体值参考接口返回的 expires_in 字段值。
由于网络延迟等原因,系统不保证 token 在此值表示的有效期内绝对有效,
如果发现 token 使用异常请重新获取新的 token,比如“http response code”返回 401。
另外,请不要频繁向服务器发送获取 token 的请求,同一账号发送此请求超过一定频率会被服务器封号,切记,切记!!
Jersey 是一个开源的、产品级别的JAX-RS API实现框架
ClientContext 客户端上下文
// 创建对象 单例模式
public static ClientContext getInstance() {
if (null == context) {
context = new ClientContext();
}
return context;
}
// 初始化 type 分 文件 或者Class类
public ClientContext init(String type) {
if (initialized) {
log.warn("Context has been initialized already, skipped!");
return context;
}
if (StrUtil.isBlank(type)) {
log.warn("Context initialization type was set to FILE by default.");
type = INIT_FROM_PROPERTIES;
}
if (INIT_FROM_PROPERTIES.equals(type)) {
// 配置初始化
initFromPropertiesFile();
} else if (INIT_FROM_CLASS.equals(type)) {
initFromStaticClass();
} else {
log.error(MessageTemplate.print(MessageTemplate.UNKNOW_TYPE_MSG, new String[]{type, "context initialization"}));
return context;
}
if (context.initialized) {
token = new TokenGenerator(context);
}
return context;
}
com.hn.im.easemob.comm.body 请求正文
com.hn.im.easemob.comm.constant
HTTPMethod 请求方式
MsgTargetType
MsgType 消息类型
com.hn.im.easemob.comm.wrapper 包装类
BodyWrapper 请求正文封装
HeaderWrapper 请求头封装
QueryWrapper 查询封装
ResponseWrapper 响应正文封装
com.hn.im.easemob.comm.invoker 调用程序
HttpClientRestAPIInvoker HttpClient实现
JerseyRestAPIInvoker JerseyRest实现
© 2015 - 2024 Weber Informatics LLC | Privacy Policy