• 目录
  • 添加依赖包
  • 用户初始化
  • 安全认证
    • 参考 详细文档安全认证
  • 登录
  • 在线状态变化回调
  • 发送单聊消息
  • 发送群聊消息
  • 接收消息回调
  • 注销

    目录

    • 添加依赖包
    • 用户初始化
    • 安全认证
    • 登录
    • 在线状态变化回调
    • 发送单聊消息
    • 发送群聊消息
    • 接收消息回调
    • 注销

    添加依赖包

    1. 在项目中添加sdk目录中最新的jar包:
    2. |-- mimc-pcjava-sdk-0.0.5.jar
    3. |--commons-lang-2.6.jar
    4. |--json-20150407-jdk16.jar
    5. |--netty-all-4.1.15.Final.jar
    6. |--protobuf-java-2.6.1.jar
    7. |--log4j-1.2.17.jar
    8. |--slf4j-api-1.7.5.jar
    9. |--slf4j-log4j12-1.7.5.jar

    用户初始化

    1. /**
    2. * @param[appAccount]: 用户在APP帐号系统内的唯一帐号ID
    3. * @param[tokenFetcher]: 用户的安全认证,详细参考下面的安全认证
    4. **/
    5. User user = new User(String appAccount, MIMCTokenFetcher tokenFetcher);

    安全认证

    参考 详细文档安全认证

    1. interface MIMCTokenFetcher{
    2. /**
    3. * @note: fetchToken()访问APP应用方自行实现的AppProxyService服务,该服务实现以下功能:
    4. 1. 存储appId/appKey/appSecret(appKey/appSecret不可存储在APP客户端,以防泄漏)
    5. 2. 用户在APP系统内的合法鉴权
    6. 3. 调用小米TokenService服务,并将小米TokenService服务返回结果通过fetchToken()原样返回
    7. * @return: 小米TokenService服务下发的原始数据
    8. **/
    9. public String fetchToken();
    10. }

    登录

    1. user.login();

    在线状态变化回调

    1. user.registerOnlineStatusHandler(MIMCOnlineStatusHandler handler);
    2. interface MIMCOnlineStatusHandler {
    3. /**
    4. * @param[isOnline]: 登录状态,true 在线,false 离线。
    5. * @param[errType]: 状态改变错误码
    6. * @param[errReason]: 状态改变错误原因
    7. * @param[errDescription]: 状态改变错误描述
    8. **/
    9. public void statusChange(boolean isOnline, String errType, String errReason, String errDescription);
    10. }

    发送单聊消息

    1. /**
    2. * @param[toAppAccount]: 消息接收者在APP帐号系统内的唯一帐号ID
    3. * @param[payload]: 开发者自定义消息体
    4. * @param[isStore]: 消息是否存储在mimc服务端,true 存储, false 不存储, 默认存储。
    5. * @return: 客户端生成的消息ID
    6. **/
    7. String packetId = user.sendMessage(String toAppAccount, byte[] payload);
    8. String packetId = user.sendMessage(String toAppAccount, byte[] payload, boolean isStore);

    发送群聊消息

    1. /**
    2. * @param[groupId]: 群ID,也称为topicId
    3. * @param[payload]: 开发者自定义消息体
    4. * @param[isStore]: 消息是否存储在mimc服务端,true 存储, false 不存储, 默认存储。
    5. * @return: 客户端生成的消息ID
    6. **/
    7. String packetId = user.sendGroupMessage(long groupID, byte[] payload);
    8. String packetId = user.sendGroupMessage(long groupID, byte[] payload, boolean isStore);

    接收消息回调

    1. user.registerMessageHandler(MIMCMessageHandler handler);
    2. interface MIMCMessageHandler {
    3. public void handleMessage(List<MIMCMessage> packets);
    4. public void handleGroupMessage(List<MIMCGroupMessage> packets);
    5. /**
    6. * @param[serverAck]: 服务器返回的serverAck对象
    7. * serverAck.packetId: 客户端生成的消息ID
    8. * serverAck.timestamp: 消息发送到服务器的时间(单位:ms)
    9. * serverAck.sequence: 服务器为消息分配的递增ID,可用于去重/排序
    10. **/
    11. public void handleServerAck(MIMCServerAck serverAck);
    12. public void handleSendMessageTimeout(MIMCMessage message);
    13. public void handleSendGroupMessageTimeout(MIMCGroupMessage groupMessage);
    14. }

    注销

    1. user.logout();

    回到顶部