Easemob Windows SDK
环信IM Windows SDK 集成说明

版本: V3.2.0


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 会自动重连,无需进行任何操作,通过注册连接监听来知道连接状态。

class ConnectionListener : public EMConnectionListener {
public:
ConnectionListener()
{
}
virtual void onDisconnect(EMErrorPtr error);
virtual void onConnect();
};
...
...
mConnectionListener = new ConnectionListener();
g_client->addConnectionListener(mConnectionListener);

发送消息

发送文本、语音、图片、位置等消息(单聊/群聊/聊天室通用,只是一个参数的差别)。

添加好友需要等待对方的确认,也可以由程序设置成自动接受好友邀请。

群组管理

聊天室管理

环信聊天室模型支持最大成员数为5000,和群组不同,聊天室内成员离线后,服务器当监听到此成员不在线后不再会给此成员再发推送。
- 支持最大成员5000;
- 环信的聊天室内仅有 owner 和游客;
- 不支持客户端建立聊天室;
- 不支持客户端邀请;
- 不支持 REST 邀请。
服务器端

更多服务器端 REST 操作请参考聊天室管理。

客户端

注意:对于聊天室模型,请一定要等到 Join 回调成功后再去初始化 conversation。

具体接口说明及使用可以参考SDK中的文档和demo程序.

技术参数