腾讯云即时通讯IM前端使用步骤简述
注:本文主要演示通过 uniapp 为开发的 微信小程序 接入 IM 的步骤:
准备工作:首先建议您在尝试接入 IM 前先将您的项目 git 到远程仓库保存一份(做最坏的打算,后续好恢复);
下面第一步便是要接入 IM 到项目,如果要通过 npm 的方式导入相应的 包 文件,则一定要先检查目前项目中是否有 package.json 即项目的包管理配置文件。如果没有则 通过 npm init -y 自动初始化出该文件。
一、为项目接入腾讯云即时通信 IM SDK:
教程链接:即时通信 IM 集成 SDK 上传插件(Web & 小程序) - 自实现 UI 集成方案 - 文档中心 - 腾讯云
核心:
通过 npm 安装如下两个包
// 下载依赖
npm i tim-upload-plugin --save
// tim-js-sdk 或 tim-wx-sdk的版本请使用 v2.9.2 或更高版本才能集成 tim-upload-plugin
// npm i tim-js-sdk@latest --save // web环境使用
npm i tim-wx-sdk@latest --save // 小程序环境使用
二、尝试登录 IM
教程链接:SDK - Documentation
登录的业务一般配合着项目根据项目业务逻辑在适当的时候进行登录。
大致代码示例如下:
测试时,如果后端没有提供 userID 和 userSig 则自己可以模拟一个:
首先在该登录即时通讯 IM 的页面 <script></script> 标签的顶部引入如下代码:
// 在项目脚本里引入模块,并初始化// import TIM from 'tim-js-sdk'; // web环境使用import TIM from 'tim-wx-sdk'; // 小程序环境使用import TIMUploadPlugin from 'tim-upload-plugin';// 引入生成 IM userSig 的文件——来自于 debug 文件夹import { genTestUserSig } from '@/debug/GenerateTestUserSig.js';let options = {SDKAppID: 0 // 接入时需要将 0 替换为您的云通信应用的 SDKAppID};// 创建 SDK 实例,`TIM.create()`方法对于同一个 `SDKAppID` 只会返回同一份实例let tim = TIM.create(options); // SDK 实例通常用 tim 表示
注意:这段代码中最主要的核心是要将自己的 SDKAppID 填入进去,这里的 SDKAppID 一般可向项目服务器端获取。同时也引入了生成 IM userSig 的文件——来自于 debug 文件夹,该文件夹来自于 IM Demo uniapp 版( 更多 SDK & Demo 源码 ),下载了 uniapp 版的 Demo 之后 打开 TUIKit 文件 即可看到 debug 文件夹。(测试时将该文件夹放置到自己项目的根目录下,再按路径引入即可)
注意:引入了 debug 文件夹后需要在该文件夹中的 GenerateTestUserSig.js 文件中将 SDKAPPID 和 SECRETKEY 修改成自己的,该值一般由后端提供。
// 这里的 userID 和 userSig 后期是由服务器接口返还的const userID = '001' // 这里测试于是就随便写了一个const userSig = genTestUserSig(userID).userSigconst promise = await tim.login({userID: userID,userSig: userSig});if (promise.code) return falseconsole.log('IM登陆成功', promise);return true
注意:代码里的 userID 和 userSig 后期应该都是由服务器通过 api 返回到前端的,所以这里的主要代码是从 const promise = await tim.login() ... 开始的,另外注意这里使用了 await 关键字,所以要在这段代码的函数名前面搭配上 async 关键字,不然运行会报错哦!
登录IM,示例如下:
// 调用函数登录 IMasync imLogin() {// 页面加载就登陆 IM 即时通讯// 这里的 userID 和 userSig 后期是由服务器接口返还的const userID = '001' // 这里测试于是就随便写了一个const userSig = genTestUserSig(userID).userSigconst promise = await tim.login({userID: userID,userSig: userSig});if (promise.code) return falseconsole.log('IM登陆成功', promise);// 设置 SDK 日志输出级别,详细分级请参见 setLogLevel 接口的说明// tim.setLogLevel(0); // 普通级别,日志量较多,接入时建议使用tim.setLogLevel(1); // release级别,SDK 输出关键信息,生产环境时建议使用return true}
登录成功的截图:
登录成功后即可开启后续业务流程,如:获取会话列表、获取历史消息、发送消息、接收消息(onMessageReceived )等...更多即时通信 IM SDK 基本概念。
发送图片、语音、视频等消息
如果需要发送图片、语音、视频等消息需要安装、注册 cos-wx-sdk-v5 上传插件,步骤如下:
安装:
npm i cos-wx-sdk-v5@1.0.10 --save
注册:在聊天页面的 <script></script> 标签顶部引入如下代码:
// 在项目脚本里引入模块,并初始化
import TIM from 'tim-wx-sdk'; // 小程序环境使用
import TIMUploadPlugin from 'tim-upload-plugin';
let options = {SDKAppID: 0 // 接入时需要将 0 替换为您的云通信应用的 SDKAppID
};
let tim = TIM.create(options); // SDK 实例通常用 tim 表示
// 注册腾讯云即时通信IM上传插件
tim.registerPlugin({'tim-upload-plugin': TIMUploadPlugin
});
程序运行截图:
因为博主目前的项目只需要发送文本和图片,暂时没有涉及到更复杂的消息类型,希望此文能帮助到您,更多请访问 腾讯云即时通讯 IM 官方文档 。
补充:
如果小程序要发布为测试版或提交审核那需要把涉及到IM的相关域名配置到小程序管理后台的域名白名单中。主要内容如下:
小程序接入,更改受信域名
小程序使用前,需要将以下域名设为受信域名(已有的 im 受信域名可以都删掉):
- wss://wss.im.qcloud.com
- wss://wss.tim.qq.com
- https://web.sdk.qcloud.com
- https://webim.tim.qq.com
添加到 downloadFile 合法域名:
- https://cos.ap-shanghai.myqcloud.com
IM官方文档直通车
腾讯云即时通讯IM前端使用步骤简述相关推荐
- 前端运用腾讯云即时通讯IM进行会话聊天
本文仅给新接触即时通讯的新手们,并且看文档没有方向的朋友们提供一个清晰的思路,大佬们轻喷. 不管你是想在html.vue项目.微信小程序中哪里想运用腾讯云即时通讯IM,都可以很好的实现,现在给大家介绍 ...
- 腾讯云 即时通讯IM 接口
<?php namespace app\miniapi\controller; use app\miniapi\service\TenImService; use think\Request; ...
- 腾讯云-即时通讯 IM
https://console.cloud.tencent.com/im-detail 基本配置->账号管理 (请进入帐号管理)
- [Web端接入经验分享] 腾讯云即时通信TIM、实时音视频TRTC
[Web端接入经验分享] 腾讯云即时通信TIM.实时音视频TRTC 即时通信TIM官网地址 即时通信TIM SDK API文档地址 实时音视频TRTC官网地址 实时音视频TRTC SDK API文档地 ...
- 微信小程序集成腾讯云即时通信IM
这里写自定义目录标题 腾讯云即时通信IM 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定 ...
- 对腾讯云即时通信 IM快速入门(Web H5)TUIKit的改造
快速入门组件非常容易上手,然后对于初学者,我对官方例子有个疑惑,例子中用户登录写在main.ts中,我想通过用户自主输入用户id的方式登录,无法在main.ts加载前,用vue实现一个输入框. imp ...
- 融云即时通讯SDK集成 – 定制UI(二) ——添加自定义表情库
融云即时通讯SDK集成 – 定制UI(二) --添加自定义表情库 背景: 最近公司新上的app要加上即时通讯的功能, 自己快速实现一个当然是不可能的了(项目deadline也顶不住哇).就从各家成熟的 ...
- 融云即时通讯云平台获北京六局委新技术新产品认证
近日,融云即时通讯云平台成功入选第七批北京市新技术新产品(服务)认证,成为本批次中即时通讯行业唯一入选企业.该证书是由北京市科学技术委员会.北京市发展改革委员会.北京市经济和信息化委员会.北京市住房和 ...
- iOS-融云即时通讯
前言: 对于iOS开发,目前比较流行的即时通信有:融云.环信.网易云信,都是不错的选择.由于工作需求,笔者粗略的学习了一下融云即时通讯.下面就简单的总结一下如何集成单聊的聊天界面. 简介: 融云是国内 ...
- ios--融云即时通讯
前言: 对于iOS开发,目前比较流行的即时通信有:融云.环信.网易云信,都是不错的选择.由于工作需求,笔者粗略的学习了一下融云即时通讯.下面就简单的总结一下如何集成单聊的聊天界面. 简介: 融云是国内 ...
最新文章
- 【ACL 2020】腾讯AI Lab解读三大前沿方向及入选的20篇论文
- python:LEGB标识符解析顺序
- CentOS\fedora使用yum update更新时不升级内核的方法
- Python基础教程:list相关操作
- git push出错 remote: Hook Error: request authorize server: curl error: Couldn't resolve host name
- 开源推荐:.Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统
- spring项目链接RabbitMQ集群
- hadoop集群之HDFS和YARN启动和停止命令
- c语言编程输出年月日,C语言程序设计: 输入年月日 然后输出是星期几
- oracle修改字符集_oracle修改数据库字符集
- 报错:使用java api连接redis集群时报错 READONLY You can't write against a read only slave....
- 工具 | Virtual GPS使用实践说明
- 计算机在酒店与应用中的展望,对酒店计算机信息管理系统的分析与展望
- 中医药天池大数据竞赛——中医文献问题生成挑战(三)
- SRS学习-配置DVR
- 全面风险管理体系架构图
- 用python的turtle画图_用Python中的画图工具turtle绘制八卦图
- there is no getter for property name ‘planid‘ in class.lang.java
- [转]体育运动比赛英语
- 分析Perm()函数功能、代码、时间复杂度