E企盈营销工具技术服务商 热线:4006-838-530

如何在微信小程序中实现实时会话道县E企盈小程序(聊天)系统

系统分析设计期末大项目——闲得一币TimeForCoin小程序前端小程序项目地址_闲得一币概述实时会话系统包括两大部分:消息管理系统和会话系统。其中“消息”可以定义为一系列会话(即双方之间会话)的集合。通过获取消息列表,我们可以看到很多个消息,每一个消息都有对应的消息id。而通过消息的id,我们可以获取一系列会话,如下:消息管理页消息管理页将获取的消息分为个人消息以及系统消息。系统消息不能够被回复而个人消息可以。在Message.json中我们需要添加:"enablePullDownRefresh": true以允许下拉刷新。而对于下拉刷新,我们可以通过onPullDownResfresh()函数实现。除此之外,我们还需要在onShow函数中添加信息获取的功能(还要有登录状态的判断)。onShow函数 onShow: async function() {    this.setData({      hasUserInfo: app.globalData.hasUserInfo    })    //登录判断    if (!this.data.hasUserInfo) {      wx.showToast({        title: '您未登录~',        image: '/images/icons/error.png'      })      setTimeout(function() {        // 返回        wx.switchTab({          url: '/pages/index/index',          success: function(res) {},          fail: function(res) {},          complete: function(res) {},        })      }, 1000);    }    await this.loadMessage(1)  },

onPullDownRefresh函数onPullDownRefresh: async function () {    if(!this.data.isLoading){      await this.loadMessage(null)    }  },

至于为什么是onShow而不是onLoad,因为onShow函数在你离开该页面重新进入(可以通过onNavigateBa开通牛仔裤小程序电话:4006-838-530ck返回)该页面的时候也会执行一次。消息的状态包括未读已读,如果使用onLoad函数从会话列表页面返回时未读不会更新为已读。在获取消息的函数loadMessage内,我们需要进行https请求,并根据请求的结果(状态码以及数据)进行消息的显示。如果状态码不为200,需要进行异常处理,这里是显示toast。而对于获取的消息,我们根据当前用户选择的是个人消息还是系统消息进行分类,如果选择个人消息就只显示个人消息。除此之外,还需要moment.js进行时间数据的解析。当然,除了时间,所有的数据都要进行正确显示。当然了,这是个异步函数,因为其中需要等待https请求的结果。消息页比较有挑战性的是自动刷新ScrollView到底端,使得有新的信息来的时候会自动显示。loadMessage函数loadMessage: async function(page) {    this.setData({      isLoading: true    })    if(page != null){      this.data.currentPage = page      this.data.systemMessage = []      this开通20-30万小程序电话:4006-838-530.data.chatMessage = []    } else{      this.data.currentPage++    }    const res = await server.request('GET', 'mes