Skip to content

Latest commit

 

History

History
253 lines (174 loc) · 13.3 KB

File metadata and controls

253 lines (174 loc) · 13.3 KB

RTM Server Java SDK HistoryMessage API Docs

Index

[TOC]

-------------------------获取历史消息数据接口--------------------------

历史消息数据单元

public static class RTMAudioFileInfo {
    public boolean isRTMaudio;
    public String codec;
    public String lang;
    public int srate;
    public int duration;
}

public static class FileMsgInfo {
    public String url;
    public long size;
    public String surl;
    @JsonIgnore
    public RTMAudioFileInfo rtmAudioFileInfo = null;

}

// for rtmmessage
public static class RTMMessage{
    public byte messageType;
    public long toId;     // for serverpush
    public long fromUid;
    public long modifiedTime;
    public long messageId;
    public String stringMessage;
    public byte[] binaryMessage;
    public String attrs;
    public FileMsgInfo fileMsgInfo = null; 

    @Override
    public String toString(){
        return " ,[One RTMMessage: mtype = " + messageType + " ,fromuid = " + fromUid + " ,mtime = " + modifiedTime
                + " ,mid = " + messageId + " ,message = " + stringMessage + " ,binaryMessage = " + binaryMessage + " ,attrs = " + attrs + "]";
    }
}

public static class RTMHistoryMessageUnit{
    public long cursorId;
    public RTMMessage message = null;

    @Override
    public String toString(){
        if(message != null){
            return cursorId + message.toString();
        }
        return "";
    }
}

历史消息返回结果

public static class RTMHistoryMessage {
    public int count;            // 实际返回的条目数量
    public long lastCursorId;    // 继续轮询时,下次调用使用的 lastId 参数的值
    public long beginMsec;       // 继续轮询时,下次调用使用的 begin 参数的值
    public long endMsec;         // 继续轮询时,下次调用使用的 end 参数的值
    public List<HistoryMessage> messageList = new ArrayList<HistoryMessage>();

    @Override
    public String toString(){
        String ss = "[HistoryMessage] count = " + count + " ,lastId = " + lastId + " ,beginMsec = " + beginMsec + " ,endMsec = " + endMsec;
        if(!messageList.isEmpty()){
            ss += " , one message info: " + messageList.get(0).toString();
        }
        else{
            ss += " ,[HistoryMessage empty]";
        }
        return ss;

    }
}

获取 P2P 历史消息

// sync methods
RTMHistoryMessage getP2PMsg(long uid, long peerUid, boolean desc, int count);
RTMHistoryMessage getP2PMsg(long uid, long peerUid, boolean desc, int count, int timeoutInseconds);
RTMHistoryMessage getP2PMsg(long uid, long peerUid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtypes);
RTMHistoryMessage getP2PMsg(long uid, long peerUid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtypes, int timeoutInseconds);

// async methods
void getP2PMsg(long uid, long peerUid, boolean desc, int count, GetHistoryMessagesLambdaCallback callback);
void getP2PMsg(long uid, long peerUid, boolean desc, int count, GetHistoryMessagesLambdaCallback callback, int timeoutInseconds);
void getP2PMsg(long uid, long peerUid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtype, GetHistoryMessagesLambdaCallback callback);
void getP2PMsg(long uid, long peerUid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtypes, GetHistoryMessagesLambdaCallback callback, int timeoutInseconds);

参数说明:

  • boolean desc: false: 从begin的时间戳开始,顺序翻页. true: 从end的时间戳开始,倒序翻页.

  • int count: 获取条目数量。建议10条,最多一次20条.

  • long begin: 开始时间戳,精确到毫秒,默认0。使用服务器当前时间。条件:>=

  • long end: 结束时间戳,精确到毫秒,默认0。使用服务器当前时间。条件:<=

  • long lastId: 最后一条消息的id,第一次填默认0。条件:> 或者 <

  • List<Byte> mtypes: 指定获取的 mtype类型,可为空或null

  • int timeoutInseconds: 发送超时,缺少timeoutInseconds参数,或timeoutInseconds为0时,将采用RTM Server Client实例的配置,即调用
    client.setQuestTimeout(int timeout)设置的超时时间,若RTM Server Client实例未配置,将采用 fpnn相应的超时配置,默认为5seconds.

  • GetHistoryMessagesLambdaCallback callback: 为异步回调返回接口, 历史数据以及错误码和错误信息将通过callback返回

      public interface GetHistoryMessagesLambdaCallback{
          void done(RTMServerClientBase.RTMHistoryMessage result, int errorCode, String errorMessage);
      }
    

返回值:

  • sync: 同步接口正常时返回历史数据,错误返回时将抛出异常RTMException或者其他系统性异常,对于RTMException异常可通过toString方法查看error信息.

  • async: 异步接口不会抛出异常,通过callback返回历史数据,当errorCode不等于ErrorCode.FPNN_EC_OK.value(),则为error返回,可查看message错误信息.

获取 Group 历史消息

// sync methods
RTMHistoryMessage getGroupMsg(long uid, long gid, boolean desc, int count);
RTMHistoryMessage getGroupMsg(long uid, long gid, boolean desc, int count, int timeoutInseconds);
RTMHistoryMessage getGroupMsg(long uid, long gid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtypes);
RTMHistoryMessage getGroupMsg(long uid, long gid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtypes, int timeoutInseconds);

// async methods
void getGroupMsg(long uid, long gid, boolean desc, int count, GetHistoryMessagesLambdaCallback callback);
void getGroupMsg(long uid, long gid, boolean desc, int count, GetHistoryMessagesLambdaCallback callback, int timeoutInseconds);
void getGroupMsg(long uid, long gid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtype, GetHistoryMessagesLambdaCallback callback);
void getGroupMsg(long uid, long gid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtypes, GetHistoryMessagesLambdaCallback callback, int timeoutInseconds);

参数说明:

  • boolean desc: false: 从begin的时间戳开始,顺序翻页. true: 从end的时间戳开始,倒序翻页.

  • int count: 获取条目数量。建议10条,最多一次20条.

  • long begin: 开始时间戳,精确到毫秒,默认0。使用服务器当前时间。条件:>=

  • long end: 结束时间戳,精确到毫秒,默认0。使用服务器当前时间。条件:<=

  • long lastId: 最后一条消息的id,第一次填默认0。条件:> 或者 <

  • List<Byte> mtypes: 指定获取的 mtype类型,可为空或null

  • int timeoutInseconds: 发送超时,缺少timeoutInseconds参数,或timeoutInseconds为0时,将采用RTM Server Client实例的配置,即调用
    client.setQuestTimeout(int timeout)设置的超时时间,若RTM Server Client实例未配置,将采用 fpnn相应的超时配置,默认为5seconds.

  • GetHistoryMessagesLambdaCallback callback: 为异步回调返回接口, 历史数据以及错误码和错误信息将通过callback返回

      public interface GetHistoryMessagesLambdaCallback{
          void done(RTMServerClientBase.RTMHistoryMessage result, int errorCode, String errorMessage);
      }
    

返回值:

  • sync: 同步接口正常时返回历史数据,错误返回时将抛出异常RTMException或者其他系统性异常,对于RTMException异常可通过toString方法查看error信息.

  • async: 异步接口不会抛出异常,通过callback返回历史数据,当errorCode不等于ErrorCode.FPNN_EC_OK.value(),则为error返回,可查看message错误信息.

获取 Room 历史消息

// sync methods     
RTMHistoryMessage getRoomMsg(long uid, long rid, boolean desc, int count);
RTMHistoryMessage getRoomMsg(long uid, long rid, boolean desc, int count, int timeoutInseconds);
RTMHistoryMessage getRoomMsg(long uid, long rid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtypes);
RTMHistoryMessage getRoomMsg(long uid, long rid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtypes, int timeoutInseconds);

// async methods
void getRoomMsg(long uid, long rid, boolean desc, int count, GetHistoryMessagesLambdaCallback callback);
void getRoomMsg(long uid, long rid, boolean desc, int count, GetHistoryMessagesLambdaCallback callback, int timeoutInseconds);
void getRoomMsg(long uid, long rid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtype, GetHistoryMessagesLambdaCallback callback);
void getRoomMsg(long uid, long rid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtypes, GetHistoryMessagesLambdaCallback callback, int timeoutInseconds);

参数说明:

  • boolean desc: false: 从begin的时间戳开始,顺序翻页. true: 从end的时间戳开始,倒序翻页.

  • int count: 获取条目数量。建议10条,最多一次20条.

  • long begin: 开始时间戳,精确到毫秒,默认0。使用服务器当前时间。条件:>=

  • long end: 结束时间戳,精确到毫秒,默认0。使用服务器当前时间。条件:<=

  • long lastId: 最后一条消息的id,第一次填默认0。条件:> 或者 <

  • List<Byte> mtypes: 指定获取的 mtype类型,可为空或null

  • int timeoutInseconds: 发送超时,缺少timeoutInseconds参数,或timeoutInseconds为0时,将采用RTM Server Client实例的配置,即调用
    client.setQuestTimeout(int timeout)设置的超时时间,若RTM Server Client实例未配置,将采用 fpnn相应的超时配置,默认为5seconds.

  • GetHistoryMessagesLambdaCallback callback: 为异步回调返回接口, 历史数据以及错误码和错误信息将通过callback返回

      public interface GetHistoryMessagesLambdaCallback{
          void done(RTMServerClientBase.RTMHistoryMessage result, int errorCode, String errorMessage);
      }
    

返回值:

  • sync: 同步接口正常时返回历史数据,错误返回时将抛出异常RTMException或者其他系统性异常,对于RTMException异常可通过toString方法查看error信息.

  • async: 异步接口不会抛出异常,通过callback返回历史数据,当errorCode不等于ErrorCode.FPNN_EC_OK.value(),则为error返回,可查看message错误信息.

获取 Broadcast 历史消息

// sync methods
RTMHistoryMessage getBroadCastMsg(long uid, boolean desc, int count);
RTMHistoryMessage getBroadCastMsg(long uid, boolean desc, int count, int timeoutInseconds);
RTMHistoryMessage getBroadCastMsg(long uid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtypes);
RTMHistoryMessage getBroadCastMsg(long uid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtypes, int timeoutInseconds);

// async methods
void getBroadCastMsg(long uid, boolean desc, int count, GetHistoryMessagesLambdaCallback callback);
void getBroadCastMsg(long uid, boolean desc, int count, GetHistoryMessagesLambdaCallback callback, int timeoutInseconds);
void getBroadCastMsg(long uid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtype, GetHistoryMessagesLambdaCallback callback);
void getBroadCastMsg(long uid, boolean desc, int count, long begin, long end, long lastId, List<Byte> mtypes, GetHistoryMessagesLambdaCallback callback, int timeoutInseconds);

参数说明:

  • boolean desc: false: 从begin的时间戳开始,顺序翻页. true: 从end的时间戳开始,倒序翻页.

  • int count: 获取条目数量。建议10条,最多一次20条.

  • long begin: 开始时间戳,精确到毫秒,默认0。使用服务器当前时间。条件:>=

  • long end: 结束时间戳,精确到毫秒,默认0。使用服务器当前时间。条件:<=

  • long lastId: 最后一条消息的id,第一次填默认0。条件:> 或者 <

  • List<Byte> mtypes: 指定获取的 mtype类型,可为空或null

  • int timeoutInseconds: 发送超时,缺少timeoutInseconds参数,或timeoutInseconds为0时,将采用RTM Server Client实例的配置,即调用
    client.setQuestTimeout(int timeout)设置的超时时间,若RTM Server Client实例未配置,将采用 fpnn相应的超时配置,默认为5seconds.

  • GetHistoryMessagesLambdaCallback callback: 为异步回调返回接口, 历史数据以及错误码和错误信息将通过callback返回

      public interface GetHistoryMessagesLambdaCallback{
          void done(RTMServerClientBase.RTMHistoryMessage result, int errorCode, String errorMessage);
      }
    

返回值:

  • sync: 同步接口正常时返回历史数据,错误返回时将抛出异常RTMException或者其他系统性异常,对于RTMException异常可通过toString方法查看error信息.

  • async: 异步接口不会抛出异常,通过callback返回历史数据,当errorCode不等于ErrorCode.FPNN_EC_OK.value(),则为error返回,可查看message错误信息.