关于Windows SDK
Windows SDK 是为在微软Windows操作系统中集成 IM 功能提供的 SDK。用户可以用 SDK 实现 IM 功能。目前支持登录、注册、单聊、群聊、聊天室、文本消息、图片、语音、位置等消息以及透传消息,还可以实现好友管理、群组管理等功能。
集成准备
从环信官方网站获取 IM Windows SDK,SDK中目录结构如下:
|include
|-bin
|-lib
|-doc
release 目录中包含SDK的头文件、lib文件和dll文件,其中easemob_d.lib和easemob_d.dll是Debug版,doc 目录包含对 sdk 的详细说明。
集成示例
创建 EMClient
EMClient 是 IM 服务的入口,可以直接调用 EMClient 的接口,也可以通过 EMClient 获得相应 EMContactManager、EMChatManager 等进行相应的操作。
CString strAppDir = GetAppDataPath();//获取当前用户APPDATA路径
CefString sAppDir(strAppDir);
easemob::EMChatConfigsPtr configs(new easemob::EMChatConfigs(sAppDir, sAppDir, "easemob-demo#chatdemoui"));//最后一个参数是开发者从环信官方申请的AppKey
configs->setOs(EMChatConfigs::OS_MSWIN);
configs->setEnableConsoleLog(false);
configs->setClientResource("windows");
EMClient *client = EMClient::create(configs);
g_client = client;
注册、登录及登出
调用 chatclient 的 createAccount()、login()、logout() 接口可以实现注册、登录功能。
注册的示例:
easemob::EMErrorPtr result = chatClient->createAccount("zhangsan", "passw0rd");
if(result->mErrorCode == EMError::NO_ERROR) {
//注册成功
} else {
//注册失败提示错误描述
cout << result->mDescription << endl;
}
登录的示例 :
easemob::EMErrorPtr result = chatClient->login("zhangsan", "passw0rd");
if(result->mErrorCode == EMError::NO_ERROR) {
//登录成功
} else {
//登录失败提示错误描述
cout << result->mDescription << endl;
}
登出的示例 :
chatClient->logout();
注意:createAccount(), login() 是需要与后台服务器通讯的操作,可能需要一定时间,如果程序想同时显示 UI 的话,需要放在单独线程中处理。
注册连接状态监听
当掉线时,SDK 会自动重连,无需进行任何操作,通过注册连接监听来知道连接状态。
在聊天过程中难免会遇到网络问题,在此 SDK 为您提供了网络监听接口,实时监听
可以根据 disconnect 返回的 error 判断原因。若服务器返回的参数值为EMError.USER_LOGIN_ANOTHER_DEVICE,则认为是有同一个账号异地登录;若服务器返回的参数值为EMError.USER_REMOVED,则是账号在后台被删除。
class ConnectionListener : public EMConnectionListener {
public:
ConnectionListener()
{
}
virtual void onDisconnect(EMErrorPtr error);
virtual void onConnect();
};
...
...
mConnectionListener = new ConnectionListener();
g_client->addConnectionListener(mConnectionListener);
Window Demo和SDK下载:点击下载
Windows SDK 集成文档:集成指南