目录

添加依赖包

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

回到顶部