applogo.png

车抵贷
购物领券
2021-08-05 微信搜索 热度:583

拍拍二手闲置平台微信小程序源码cms,可以将自己的闲置物品进行转让或者捐赠。想和卖家达成共识就需要涉及IM聊天。拍拍二手闲置平台目前接入的是环信IM聊天。下面我将从三个阶段带大家玩转环信IM会话。

微信小程序源码cms:在微信小程序里实现聊天室,有人会吗?

前期初识IM聊天带着问题去调研必须接入环信吗?除了环信是否可以接入其他即时通信?环信目前有哪些功能呢?支持微信小程序吗?如何接入小程序呢?调研分析必须接入环信吗?除了环信是否可以接入其他即时通信?现状: 微信小程序API 提供了WebSocket 方法。扩展: 如果服务端支持scoket通信,ios\android\H5 也全都支持Im聊天了备注:专业第三方Im有融云、环信、云之讯等,底层实现均是基于scoket 通信。明白scoket通信后也可以自己写即时通信

微信小程序源码cms:在微信小程序里实现聊天室,有人会吗?

环信目前有哪些功能呢?支持微信小程序吗?错误想法: 环信就是做im聊天的,咱们上去按照接入文档,开发就能搞定!!!这种想法是很致命的。在所有的第三方组件接入中,如果我们不能跳出来看待问题,只是为了完成任务而完成任务。那么我们永远是最底层的低级码农。环信目前是同行业里面做的算不错的。那么他的官网、接入规范都应该有的。微信小程序也是支持的。在后面小编会带领大家一切怎么去阅读一个官网

微信小程序源码cms:在微信小程序里实现聊天室,有人会吗?

如何接入小程序?接入小程序是否需要申请一个账号呢?我直接运行他们的demo可以吗? 怎么去测试呢? 此时我们可以有很多的猜想。我认为在开始接入之前我们应该很好的进行一些思考,答案显而易见。

微信小程序源码cms:在微信小程序里实现聊天室,有人会吗?

环信接入思考篇快即时慢在工作中,大家会经常遇到第三方组件的接入。当接收到任务后,为了尽快完成任务。上来就google,找攻略,找技巧。往往认为这样做速度是最快的。结果适得其反,做了很多无用的功。我们意识中的快,结果却变成了慢

微信小程序源码cms:在微信小程序里实现聊天室,有人会吗?

慢即时快image逆向思维: 任何一个第三方的组件,特别是一个大点的平台,他们为了推出自己的产品,一定会有各种各样的功能支持,接入文档说明。我们放慢速度,将这些资源用上半天的时间进行简单的梳理。后期的开发进度会有很大的提升。上图是我在接入环信Im后进行的反思。因为在接入环信之前,其他团队成员用了很长的时间联调。假如他们在接入环信聊天之前,了解环信拥有自己的后台,可以直接给用户端发送测试消息;可以直接创建用户、创建聊天室、创建群组。他们还会花费那么久的时间去联调吗?完全不用依赖服务端。不用依赖ios,依赖android。自己使用环信后台,轻轻松松完成各种测试。

微信小程序源码cms:在微信小程序里实现聊天室,有人会吗?

环信接入环信官网注册自己的即时通讯云,并登陆后台

微信小程序源码cms:在微信小程序里实现聊天室,有人会吗?

image创建自己的应用,并记录关键信息

微信小程序源码cms:在微信小程序里实现聊天室,有人会吗?

image以下是关键信息哦!!!

微信小程序源码cms:在微信小程序里实现聊天室,有人会吗?

image备注:

微信小程序源码cms:在微信小程序里实现聊天室,有人会吗?

应用标识 应用接入时会使用IM 用户 可以创建、删除用户、发送消息群组 可以创建、删除群组信息、发送消息聊天室 可以创建、删除聊天室、发送消息tip 通过这个后台管理系统,就可以玩转环信的接入测试了。从环信下载小程序demo,替换 appkey 进行联调测试

微信小程序源码cms:在微信小程序里实现聊天室,有人会吗?

image测试走起用户测试 在环信后台创建用户,在小程序端登录 (用户demo1 密码:123456)

image一对一会话测试① 在环信后台创建用户demo2② 点击操作,查看用户好友将demo1和demo2 添加为好友。③ 在小程序端用demo1给demo2发送测试消息。④ 退出demo1用户,登录demo2查看是否会接收到demo1发送的会话

image由于环信工程师们相信码农的实力,在群组测试和聊天室测试这块为大家留下了想象空间。demo 中群组测试和聊天室测试为明确写出。让我继续带大家飞

群组测试① 创建群组记录群组id,并给群组添加成员(demo2)

image② 环信后台给群组发送测试消息

image③ 控制台能收到群组测试消息,怎么展示呢? 请阅读源码解析篇聊天室测试① 创建聊天室记录聊天室id,将demo1 设置为超级管理员,demo2设置为管理员② 聊天室这里没有聊天室消息的发送。请阅读源码解析篇通过以上4个简单的测试,android、ios、h5、小程序的聊天测试均可以参照以上4点进行顺利的测试。初期就此结束。下面带代价进行源码的解析

中期看源码前期思考image核心源码阅读image以上是环信sdk 基础代码结构。 通过简单阅读会发现:

环信的scoket 通信也使用了微信小程序暴露的scoket 通信 (猜想 android、ios 其他端也有对应的scoket通信)环信的api包装在connection.js 组件中,如果某些api没有,咱们可以扩展connection 中的方法环信核心代码阅读完成后,发现没有涉及到缓存。看来缓存的处理是在对应的业务逻辑中。

设想:

消息应该在哪里缓存哪里进行会话链接的监听注册环信demo 代码阅读会话、群组通过前面提到的方式,大家可以在小程序控制台抓取到用户收到的会话和群组消息

会话

app.js环信scoket 注册监听代码在app.js 中核心代码如下:

实际开发过程中,在微信中,退出小程序,重新进入时,webscoket 通信并没有重新创建链接。存在用户收到不到消息的情况。可以将以上代码封装,例如addHXLIstener(...)。当用户重新打开后,再次注册环信监听即可。拍拍二手闲置交易平台,主要集成的是文本聊天功能。

环信登录 例如 initLoginHX();

chat 会话环信的会话列表存储在本地,并没有调用服务器端数据

通过以上代码得出结论: 环信的会话是通过遍历用户id 对方id 构成的数据。

那群组和聊天室的怎么处理呢?环信小程序demo中只提供了聊天室列表的获取接口我们可以轻松实现聊天室列表,并没有提供群组列表的获取方式。我们需要在conection中扩展调用群组列表的接口,来实现群组列表。参照聊天室列表获取即可实现。聊天室列表实现方式如下:

chatroom从本地缓存中获取聊天记录,并展示

环信聊天页面,聊天数据全部存储在缓存当中,跟进聊天类型的不同,主要需要调整缓存的key。详情如下:

单对单聊天 对方uin 自己的uin群组聊天(针对某个商品,不需要好友关系,只需要临时聊天) 群组id 对方uin 自己的uin聊天室(同群组聊天)问题大杂烩群组聊天缓存如何存储?答: 缓存key 设置为 群组id 对方uin 自己的uin

聊天时,如何在聊天中携带扩展信息答: 消息内容中,ext 支持用户自定义参数传递

会话列表如何实现?答: 通过接口获取环信的群组列表,通过自己的服务器端补全对应的会话信息。

回顾整个环信接入,整体围绕 假设-->猜想-->实践完成的。仔细阅读官网,会为大姐节约很多时间

作者:贾慧斌链接::///p/8919316d26b8来源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

上一篇:长沙相亲微信群二维码:你怎么看待相亲对象在朋友圈发二维码要红包?

下一篇:微信红包怎么转发第二次:微信红包怎么没有继续发送此红包的功能?(微信红包继续发送)

赞 0
分享
猜你喜欢

丙肝是什么病微信交流群,丙肝母婴贴吧

耳鸣微信交流群,全国耳鸣交流群

打呼噜微信交流群,怎么加入陌生微信群

「东莞车迷微信群」求个东莞的大众高尔夫微信群

「聋人微信和扣扣群」微信有聋哑人的群吗

「加入菏泽大型微信群」如何加入菏泽一中高三一部十八班微信群

「启动微信群名软件」微信群怎么设置不让别人改群名?

「微信红包群规则复制」微信红包群规章制度是什么样的?

「微信稀奇古怪总代群」我想在微信上卖稀奇古怪的玩意,一件代发的,不需要加盟费!有的留个

「微信群群主有哪些特权」微信群主有哪些特权?

 

账号登录,或者注册个账号?