目录
添加依赖包
在项目中添加sdk目录中最新的jar包:
|-- mimc-pcjava-sdk-0.0.5.jar
|--commons-lang-2.6.jar
|--json-20150407-jdk16.jar
|--netty-all-4.1.15.Final.jar
|--protobuf-java-2.6.1.jar
|--log4j-1.2.17.jar
|--slf4j-api-1.7.5.jar
|--slf4j-log4j12-1.7.5.jar
用户初始化
/**
* @param[appAccount]: 用户在APP帐号系统内的唯一帐号ID
* @param[tokenFetcher]: 用户的安全认证,详细参考下面的安全认证
**/
User user = new User(String appAccount, MIMCTokenFetcher tokenFetcher);
安全认证
interface MIMCTokenFetcher{
/**
* @note: fetchToken()访问APP应用方自行实现的AppProxyService服务,该服务实现以下功能:
1. 存储appId/appKey/appSecret(appKey/appSecret不可存储在APP客户端,以防泄漏)
2. 用户在APP系统内的合法鉴权
3. 调用小米TokenService服务,并将小米TokenService服务返回结果通过fetchToken()原样返回
* @return: 小米TokenService服务下发的原始数据
**/
public String fetchToken();
}
登录
user.login();
在线状态变化回调
user.registerOnlineStatusHandler(MIMCOnlineStatusHandler handler);
interface MIMCOnlineStatusHandler {
/**
* @param[isOnline]: 登录状态,true 在线,false 离线。
* @param[errType]: 状态改变错误码
* @param[errReason]: 状态改变错误原因
* @param[errDescription]: 状态改变错误描述
**/
public void statusChange(boolean isOnline, String errType, String errReason, String errDescription);
}
发送单聊消息
/**
* @param[toAppAccount]: 消息接收者在APP帐号系统内的唯一帐号ID
* @param[payload]: 开发者自定义消息体
* @param[isStore]: 消息是否存储在mimc服务端,true 存储, false 不存储, 默认存储。
* @return: 客户端生成的消息ID
**/
String packetId = user.sendMessage(String toAppAccount, byte[] payload);
String packetId = user.sendMessage(String toAppAccount, byte[] payload, boolean isStore);
发送群聊消息
/**
* @param[groupId]: 群ID,也称为topicId
* @param[payload]: 开发者自定义消息体
* @param[isStore]: 消息是否存储在mimc服务端,true 存储, false 不存储, 默认存储。
* @return: 客户端生成的消息ID
**/
String packetId = user.sendGroupMessage(long groupID, byte[] payload);
String packetId = user.sendGroupMessage(long groupID, byte[] payload, boolean isStore);
接收消息回调
user.registerMessageHandler(MIMCMessageHandler handler);
interface MIMCMessageHandler {
public void handleMessage(List<MIMCMessage> packets);
public void handleGroupMessage(List<MIMCGroupMessage> packets);
/**
* @param[serverAck]: 服务器返回的serverAck对象
* serverAck.packetId: 客户端生成的消息ID
* serverAck.timestamp: 消息发送到服务器的时间(单位:ms)
* serverAck.sequence: 服务器为消息分配的递增ID,可用于去重/排序
**/
public void handleServerAck(MIMCServerAck serverAck);
public void handleSendMessageTimeout(MIMCMessage message);
public void handleSendGroupMessageTimeout(MIMCGroupMessage groupMessage);
}
注销
user.logout();
回到顶部