这是本文档旧的修订版!


SDK基础功能

直接加载 index.js 模块,代码如下:

var easemob = require('../../node/index');

登录前,需要先创建配置对象和 client 对象,用户可以使用 用户名+密码用户名+token 两种方式登录。

创建配置对象

/**  
 * 首先构造 sdk 配置信息
 * param1 为资源存储路径,输入参数
 * param2 为工作路径,输入参数,日志存储在这里
 * param3 为 appkey ,输入参数,easemob-demo#chatdemoui 为 DemoAppKey ,需填写自己的 Appkey
 * param4 为设备 ID ,默认 0
 * return 配置模块对象
 */
var emchatconfigs = new easemob.EMChatConfig(".", ".", "easemob-demo#chatdemoui", 0);

创建 client 对象

var emclient = new easemob.EMClient(emchatconfigs);

用户名+密码登录方式代码如下:

/** 
 *  密码登录 api ,异步操作
 * param username 为用户名,输入, String
 * param password 为密码,输入, String
 * return 返回 Promise 对象,response 参数为 #Result
 */
login(username, password)

调用用方法如下:

emclient.login("jwfan", "jwfan").then((res) =>{
if(res.code == 0)
  console.log("login success");
},(error) => {});

用户名+token 登录方式代码如下:

/** 
 *  token 登录 api ,异步操作
 * param username 用户名,输入, String
 * param token 用户 token ,输入, String
 * return 返回 Promise 对象,response 参数为 #Result
 */
loginWithToken(username, token)

调用方法如下:

emclient.loginWithToken("jwfan", "Mytoken").then((res) =>{
if(res.code == 0)
  console.log("login success");
},(error) => {});

登录接口返回值 ret 为 EMError 对象,登录成功则 ret 的 errorCode 为 0,否则可以用 description 获取错误信息 登录后获取用户信息方法如下:

// 获取用户信息,包括用户名,密码,token
var loginInfo = emclient.getLoginInfo();
console.log("loginInfo.loginUser = " + loginInfo.loginUser);
console.log("loginInfo.loginPassword = " + loginInfo.loginPassword);
console.log("loginInfo.loginToken = " + loginInfo.loginToken);

用户退出代码如下:

// 返回退出结果 EMError 对象
emclient.logout().then((res) => {
if(res.code == 0)
  console.log("logout success");
},(error) => {});

接口API如下:

/** 
 *  账户注册api,异步操作
 * param username 用户名,输入,String
 * param password 密码,输入,String
 * return Promise对象,该对象的response参数为Result
 */
createAccount(username, password);
<code>

调用方法如下:
<code>
emclient.createAccount("newAccount","password").then((res) => {
  if(res.errorCode == 0)
      console.log("createAccount success");
  else
      console.log("createAccount fail:" + res.description);
  },(error) => {})

通过注册回调函数,可以监听 SDK 的连接与断开状态,在用户登录成功后调用,代码如下

// 实例化监听模块
var listener = new easemob.EMConnectionListener();
// 添加到client
emclient.addConnectionListener(listener);

// 连接成功,什么都不需要做
listener.onConnect(() => {
console.log("EMConnectionListener onConnect");
});

// 连接断开,可能是断网或异地登录被踢,可通过error.errorCode判断,若为206,即为被踢,需要退出登录
listener.onDisconnect((res) => {
console.log(res.errorCode);
console.log(res.description);
console.log("EMConnectionListener onDisconnect");
if(res.errorCode == 206)
    emclient.logout();
    console.log("你的账户已在其他地方登录");
});

// 移除监听
emclient.removeConnectionListener(listener);

系统配置信息模块为 EMChatConfig ,可以使用 emclient 的 getChatConfigs() 接口获取

let config = emclient.getChatConfigs();

配置信息包括日志路径,资源路径、下载路径、是否自动同意好友申请、是否自动同意组邀请、退出群组时是否删除消息等,详见


sdk 提供私有化部署中的服务器设置接口,私有化部署设置使用 api 中的 EMChatPrivateConfigs,可以由系统配置模块的 privateConfigs 接口获取,代码如下:

let privateconfigs = config.privateConfigs();

EMChatPrivateConfigs 使用属性配置服务器部署信息,设置及获取的方法如下:

privateconfigs.enableDns=true;
privateconfigs.chatServer="192.168.1.100";
privateconfigs.chatPort=5000;
privateconfigs.restServer="http://192.168.1.101:5001";
privateconfigs.resolverServer="http://192.168.1.101:5002";
console.log(privateconfigs.enableDns);
console.log(privateconfigs.chatServer);
console.log(privateconfigs.chatPort);
console.log(privateconfigs.restServer);
console.log(privateconfigs.resolverServer);

SDK 提供输出到日志文件的 js 接口,需要先创建 EMLog 对象,可以输出 String 和数字,代码如下:

// 实例化日志对象,日志按等级可分为error,warn,Debug 3级
var log = new easemob.EMLog();

// 设置日志等级,0为debug,1为warn,2为error
log.setLogLevel(0);

// 可以控制日志是否输出到控制台,默认不输出
log.setIsDisplayOnConsole(true);

//输出日志
log.Log("Log Test");
log.Log(5);
log.Debug("Debug Test");
log.Debug(5);
log.Warn("Warn Test");
log.Warn(5);
log.Error("Error Test");
log.Error(5);

注:由于 EMChatConfig 对象创建时会指定日志输出路径,日志对象的创建一般放到 EMChatConfig 创建之后。


上一页:集成说明

下一页:Demo 下载体验