接收消息需要实现 EMChatManagerListener 的 onReceiveMessage() 方法并且注册该listener。
class Chat : public easemob::EMChatManagerListener {
void onReceiveMessage(const easemob::EMMessageList &messages);
}
chatClient->getChatManager().addListener(this);
发送消息需要创建 EMMessage 实例,目前支持文本、图片、音频文件等消息类型。
EMTextMessageBody* body = new EMTextMessageBody("How are you, du");
easemob::EMMessagePtr msg = EMMessage::createSendMessage(loginUser, to, body);
easemob::EMCallbackPtr callback(new easemob::EMCallback(mHandle,
[=]()->bool{
window_->AddOutput("Msg send success");
return true;
},
[=](const easemob::EMErrorPtr error)->bool{
window_->AddOutput( "Send message failed: " + error->mDescription);
return true;
}));
msg->setCallback(callback);
chatClient->getChatManager().sendMessage(msg);
请注意 callback 的定义,为了能够获知 callback 的拥有者是否仍然存在,需要在您的类中定义EMCallbackObserverHandle。
easemob::EMCallbackObserverHandle mHandle;
具体接口说明及使用可以参考 SDK 中的文档和 demo 程序。