小程序中使用IM
想在小程序使用个人用户互相聊天、用户群组聊天
功能,大致思路都一样,都是通过长连接实现,项目中没有充裕的时间去实现,于是引入了goEasy的实时通讯功能,goEasy IM通信文档,官网中有例子。由于业务代码太多不好讲解,那就针对官网的例子进行简单的讲解。
1、运行起来
首先去仓库克隆下来 GoEasy / IM即时通讯聊天(Uniapp 小程序 Vue React Taro H5)
我们选择了使用uni-app做小程序,这里我们clone后使用HBuilder X
打开文件夹web-im-demo-master\uniapp\src
,
备注:使用什么工具开发无所谓,这里用VScode也行,逻辑是一样的
1.1 基础配置
先把appkey配置上,去官网个人申请一个就可以了使用common key
1.2 运行
直接运行到Chrome,然后就可以开始通信了
2、代码分析
主要讲入口操作,以及关键的三个页面:会话列表
通讯录
聊天页面
2.1 入口初始化goEasy
在入口文件main.js (不同的框架可以是不同的入口,这个入口指的是刚进入整个项目的时候,写在哪感觉合理就行)
进行了初始化的操作,然后用了一个监听器 回调函数里面在页面底部渲染了未读数
2.2 会话列表
会话列表pages/conversations
页面
在代码中主要是在页面进入时候,每次页面被重新渲染都要调起整个流程
1、获取个人信息连接GoEasy(收到个人消息)
2、通过个人id查询需要订阅的groupId 并订阅(收到群消息)
3、开起消息列表更新监听
2.3 通讯录
这个页面跟goEasy没啥关系,用户都是用的自己的系统的 userId
就够了
2.4 聊天页面
这里是个人的聊天、具体的各种逻辑跟着方法名搜索就可以。
群聊是同理的方式只是发送消息的对象变成了群id
3、其他
在业务中 goEasy 自定义能力比较强,在项目中通过订单orderId作为groupId 实现了付费咨询