上云无忧 > 文档中心 > 环信IM即时通讯(小程序) - 初始化及登录
IM即时通讯
环信IM即时通讯(小程序) - 初始化及登录

文档简介:
本页介绍小程序 SDK 集成过程中的初始化及登录。 前提条件: 开始前,请注册有效的环信即时通讯 IM 开发者账号且获得 App key,见 环信即时通讯云管理后台 (opens new window)。 引入 SDK: 对于 JavaScript SDK,导入代码如下: import EC from "easemob-websdk";
*此产品及展示信息均由环信官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

本页介绍小程序 SDK 集成过程中的初始化及登录。

前提条件

开始前,请注册有效的环信即时通讯 IM 开发者账号且获得 App key,见 环信即时通讯云管理后台 (opens new window)

引入 SDK

对于 JavaScript SDK,导入代码如下:

import EC from "easemob-websdk"; 
 

对于 TypeScript SDK,导入代码如下, EasemobChat 是 SDK 类型的命名空间。

import EC, { EasemobChat } from "easemob-websdk"; 
 

SDK 初始化

使用 SDK 前需要进行初始化,示例代码如下:

const conn = new EC.connection({ appKey: "your appKey", url: "wss://im-api-wechat.easemob.com/websocket",
 apiUrl: "https://a1.easemob.com", }); 
 

初始化 SDK 参数说明:

参数 类型 是否必需 描述
appKey String 环信即时通讯云控制台为你的应用生成的唯一标识,由应用名称(Appname)和组织名称(Orgname)组成。
isHttpDNS Bool 是否开启 DNS,防止 DNS 劫持。
-(默认)true:开启 DNS;
- false:关闭 DNS。
delivery Bool 是否开启送达回执:
- true:开启;
-(默认)false:关闭。
https Bool 是否支持通过 HTTPS 访问即时通讯 IM:
- (默认)true:支持 HTTPS 和 HTTP;
-false:浏览器根据使用的域名自行判断。
heartBeatWait Int 心跳间隔,单位为秒,默认为 30000 秒。
deviceId String 设备 ID,为默认随机值。
useOwnUploadFun Bool 是否支持通过自己的路径将图片、文件上传到自己的服务器。
-true:支持,需要指定路径;
-(默认)false:关闭,通过消息服务器上传下载文件。
autoReconnectNumMax Int 最大重连次数。
apiUrl String 指定的 REST 服务器。在未开启 DNS 的情况下使用,一般适用于开发者要实现数据隔离、特别注重数据安全的场景。如有需求,请联系商务获取指定的服务器地址。
url String 指定的消息服务器。在未开启 DNS 的情况下使用,一般适用于开发者要实现数据隔离、特别注重数据安全的场景。如有需求,请联系商务获取指定的服务器地址。

注册用户

本节介绍三种用户注册方式。

控制台注册

登录环信即时通讯云控制台 (opens new window),选择即时通讯 > 运营服务 > 用户管理,创建 IM 用户。

REST API 注册

请参考 注册用户。

SDK 注册

若支持 SDK 注册,需登录环信即时通讯云控制台 (opens new window),选择 即时通讯 > 服务概览,将 设置下的 用户注册模式 设置为 开放注册

conn .registerUser({ /** 用户 ID。 */ username: string, /** 密码。 */ password: string, /** 显示昵称。
用于移动端推送的时候通知栏显示。 */ nickname: string, }) .then((res) => { console.log(res); }); 
 

用户登录

目前登录服务器有两种方式:

  • 用户 ID + 密码
  • 用户 ID + token

登录时传入的用户 ID 必须为 String 类型,支持的字符集详见用户注册的 RESTful 接口。

调用登录接口后,收到 onConnected 回调表明 SDK 与环信服务器连接成功。

手动登录

用户 ID +密码 登录是传统的登录方式。用户 ID 和密码都是你的终端用户自行决定,密码需要符合密码规则要求。

conn .open({ user: "username", pwd: "password", }) .then(() => { console.log("login success"); })
 .catch((reason) => { console.log("login fail", reason); }); 
 

用户 ID + token 是更加安全的登录方式。token 可以通过调用 REST API 获取,详见 环信用户 token 的获取。

注意

使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。

conn .open({ user: "username", accessToken: "token", }) .then(() => { console.log("login success"); })
 .catch((reason) => { console.log("login fail", reason); }); 
 

自动登录(小程序 SDK 暂不支持)

在初始化的时候,可以设置是否自动登录。如果设置为自动登录,则登录成功之后,后续启动初始化的时候会自动登录,登录结果通过回调返回。

退出登录

conn.close(); 
 

连接状态相关

你可以通过注册连接监听器确认连接状态。

conn.addEventHandler("handlerId", { onConnected: () => { console.log("onConnected"); },
 onDisconnected: () => { console.log("onDisconnected"); }, onTokenWillExpire: () => 
{ console.log("onTokenWillExpire"); }, onTokenExpired: () => { console.log("onTokenExpired"); }, }); 
 

断网自动重连

如果由于网络信号弱、切换网络等引起的连接中断,系统会自动尝试重连。重连成功或者失败分别会收到 onConnected 和 onDisconnected 通知。

被动退出登录

对于 onDisconnected 通知,错误码(errorCode)可能为以下几种,建议 App 返回登录界面。

错误码 描述
WEBIM_CONNCTION_USER_LOGIN_ANOTHER_DEVICE=206 用户已经在其他设备登录。
WEBIM_CONNCTION_USER_REMOVED=207 用户账户已经被移除。
WEBIM_CONNCTION_USER_KICKED_BY_CHANGE_PASSWORD=216 由于密码变更被踢下线。
WEBIM_CONNCTION_USER_KICKED_BY_OTHER_DEVICE=217 由于其他设备登录被踢下线。

输出信息到日志文件

开启日志输出:

logger.enableAll(); 
 

关闭日志输出:

logger.disableAll(); 
 

设置日志输出等级:

// 0 - 5 或者 'TRACE','DEBUG','INFO','WARN','ERROR','SILENT'; logger.setLevel(0);
相似文档
  • 功能描述: 环信即时通讯 IM 支持多种消息类型,开发者可以方便地对本地会话、消息进行管理,可以从服务端获取历史会话和消息,提供送达回执和已读回执能力。
  • 登录即时通讯服务后,用户可以在单聊、群聊、聊天室中发送如下类型的消息: 文字消息,包含超链接和表情; 附件消息,包含图片、语音、视频及文件消息; 位置消息; 透传消息; 自定义消息。 针对聊天室消息并发量较大的场景,即时通讯服务提供消息分级功能。你可以通过设置消息优先级,将消息划分为高、普通和低三种级别。你可以在创建消息时,将指定消息类型,或指定成员的所有消息设置为高优先级,确保此类消息优先送达。
  • 环信即时通讯 IM SDK 在消息服务器上存储历史消息。当聊天用户从其他设备登录或加入群组后,你可以从服务器检索历史消息,以便用户也可以在新设备上浏览这些消息。本文介绍如何实现用户从消息服务器获取会话和消息。
  • 单聊会话支持消息送达回执、会话已读回执和消息已读回执,发送方发送消息后可及时了解接收方是否及时收到并阅读了信息,也可以了解整个会话是否已读。
  • 为方便用户在聊天过程中对文字消息进行翻译,环信即时通讯 IM SDK 集成了 Microsoft Azure Translation API,支持在发送或接收消息时对文本消息进行按需翻译或自动翻译: 按需翻译:接收方在收到文本消息后,将消息内容翻译为目标语言。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部