All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hn.im.readme.md Maven / Gradle / Ivy

There is a newer version: 1.0.18
Show newest version
## 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