初始化及登录

您所在的位置:网站首页 微信分开激活码 初始化及登录

初始化及登录

2024-07-02 08:25:59| 来源: 网络整理| 查看: 265

# 初始化及登录

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

# 前提条件

开始前,请注册有效的环信即时通讯 IM 开发者账号且获得 App key,见 环信即时通讯云管理后台open in 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 参数说明:

参数类型是否必需描述appKeyString是环信即时通讯云控制台为你的应用生成的唯一标识,由应用名称(Appname)和组织名称(Orgname)组成。isHttpDNSBool否是否开启 DNS,防止 DNS 劫持。 -(默认)true:开启 DNS; - false:关闭 DNS。deliveryBool否是否开启送达回执: - true:开启; -(默认)false:关闭。httpsBool否是否支持通过 HTTPS 访问即时通讯 IM: - (默认)true:支持 HTTPS 和 HTTP; -false:浏览器根据使用的域名自行判断。heartBeatWaitInt否心跳间隔,单位为毫秒,默认为 30000。deviceIdString否设备 ID,为默认随机值。useOwnUploadFunBool否是否支持通过自己的路径将图片、文件上传到自己的服务器。 -true:支持,需要指定路径; -(默认)false:关闭,通过消息服务器上传下载文件。autoReconnectNumMaxInt否最大重连次数。apiUrlString是指定的 REST 服务器。在未开启 DNS 的情况下使用,一般适用于开发者要实现数据隔离、特别注重数据安全的场景。要获取该服务器地址,需在环信控制台的即时通讯 > 服务概览页面,查看域名配置表格中的 Rest Api 设置。urlString是指定的消息服务器。在未开启 DNS 的情况下使用,一般适用于开发者要实现数据隔离、特别注重数据安全的场景。 要获取该服务器地址,需在环信控制台的即时通讯 > 服务概览页面,查看域名配置表格中的微信小程序或支付宝小程序设置。# 注册用户

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

# 控制台注册

通过控制台注册用户,详见创建 IM 用户。

# REST API 注册

请参考 注册用户。

# SDK 注册

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

conn .registerUser({ /** 用户 ID。 */ username: string, /** 密码。 */ password: string }) .then((res) => { console.log(res); }); # 用户登录

SDK 不支持自动登录,只支持通过以下方式手动登录:

用户 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); });

登录重试机制如下:

登录时,若服务器返回明确的失败原因,例如,token 不正确,SDK 不会重试登录。若登录因超时失败,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.setConsoleLogVisibility(false) 监听 SDK 日志事件:logger.onLog = (log)=>{ console.log('im logger', log) }

关闭日志输出:

logger.disableAll();

设置日志输出等级:

// 0 - 5 或者 'TRACE','DEBUG','INFO','WARN','ERROR','SILENT'; logger.setLevel(0);

设置缓存日志:

logger.setConfig({ useCache: false, // 是否缓存 maxCache: 3 * 1024 * 1024, // 最大缓存字节 }); // 缓存全部等级日志 logger.setLevel(0);

下载日志:

logger.download();


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭