探索、思考、创造、分享

数据驱动、坚持为客户提供有价值的服务和内容

当前位置: 首页 > 小程序资讯_南京小程序开发_南京微信小程序开发制作_南京app开发-安优云 > 小程序制作
南京小程序开发基于有趣的聊天室了解小程序的会话管理
来源:南京小程序开发   发布时间:2020-02-13 15:09:46点击:
熊猫聊天室,小程序的Websocket聊天。有关从服务器到applet客户端的配置的基本教程。在本教程中,南京小程序开发我们将在applet中实现一个基本的websocket聊天室,并计划实现以下功能:

.微信用户登录“小程序会话管理”
.用户之间的文本通信“ websocket实现”
.富媒体信息的“文件存储和相关逻辑”,例如用户之间发送的图片

由于个别开发人员无法提交信息交换小程序,所以小程序已被挂起,但是可以在本地运行演示。

如果有任何错误,请指出,我们可以通过在SF下留言或在该项目的Git中提出问题来共同进步^

聊天室的基本配置
实际上,小应用程序一侧的聊天室信息流非常简单。本教程使用一个有趣的聊天室来进一步了解applet中的会话实现。

南京小程序开发我主要参考腾讯云实验在服务器端环境中基于CentOS构建和配置微信小程序服务

我们需要了解为什么applet无法实现会话,以及如何在applet中实现websocket通信。

该小应用程序不是嵌套在微信中的HTML 5网页,无法通过URL访问。我们只能自己执行诸如会话之类的事情。幸运的是,该官员提供了相应的套件来实施会议。也就是说,晶圆CLIENT SDK和节点中间件晶圆节点会话。我们可以根据文档简单地实现会话。

腾讯云晶圆项目下有许多类似的项目,“其中大多数需要与腾讯云合作进行一键式部署”。如果仅需要实现小程序的会话管理,则可以使用晶圆CLIENT SDK和节点中间件晶圆节点会话。

我们使用WS包在服务器端实现websocket。我们不使用socket.io的原因是socket.io在客户端需要其他脚本来实现通信。

在applet方面,我们引入了晶圆CLIENT SDK套件,以使服务器能够获取会话。

主要逻辑分为几个简单功能。当然,您需要首先配置请求的服务器域名和applet帐户密码。

//Introduce session suite, which encapsulates wx.login, wx.getuserinfo and other operations
const wafer = require('../../vendors/wafer-client-sdk/index')

//It is used to log in to make the server obtain the session, and then the session returned by the server will contain the user information. It is used to return the user's image URL in websocket
function login(){
  .....
}

//Used to update data when there is new information, MSG refers to information, ad refers to the information ID returned by websocket, and used for scroll in view scrolling
pushMsg(msg, ad) {
  .....
}

//Used to listen for websocket connection
listen(){
  .....
}

//Used for applet to send websocket information
send(){
  .....
}
基本上,这是websocket通信的过程:

客户端将信息发送到服务器M1
服务器接收到该信息后,根据情况将其返回给客户端M2
每个客户端收到M2后更新视图
当然,第一步是在服务器端连接websocket。只有每个连接的客户端都可以交换信息。

小程序的会话解析
为了实现会话,我们在服务器端使用晶圆节点会话来提供用于连接的会话功能。在小程序侧,我们使用晶圆CLIENT SDK,该程序封装了wx.request,wx.login和其他逻辑,并实现了小程序侧的用户登录和会话设置。

有几个步骤可以在applet端获取会话

.Wx.login获取代码

.Wx.request将代码发送到其自己的服务器

.服务器接收代码并与appid和appsecret协作将其发送到微信服务器以获取openid和sessionkey

.Wx.getuserinfo将获取原始数据,签名,加密数据,IV,我们需要将其发送到我们自己的服务器。我们构建自己的签名2 = SHA1(会话密钥+原始数据),并通过将签名2与签名2进行比较来完成数据验证

.服务器通过aes-128-cbc算法对称地解密加密数据和IV,然后获得userinfo。这次获得的userinfo还包含诸如openid之类的信息:“如果在微信开放平台上绑定applet,则将获得unionid。”

.服务器将构建req.session对象并将其返回到applet,该applet包含ID,userinfo,sessionkey,skey,这些ID由服务器本身根据sessionkey + appid + appsecret生成,并且具有到期时间。我们生成的密钥具有自己的到期时间,但是applet端的会话也具有自己的到期时间。Wafer将自动调用wx.checksession来检查是否过期。如果过期,将使用wx.login。

在我们的演示中,服务器会话已到期,本地会话尚未到期。而且,每当websocket发送信息时,都需要从req.session中获取用户的头像,这将导致websocket连接失败。但是,小程序侧的会话不会过期,也就是说,服务器端的会话密钥与小程序的会话密钥不一致。“客户端会话密钥仍然存在,服务器会话密钥已过期并被破坏”,这导致比较失败。那我该怎么办?再问一遍!但是,由于晶圆封装了会话管理,即“只有在会话过期后才需要在applet上请求会话”,因此applet不会将信息重新发送到其自己的服务器以生成新的会话密钥。因此,我们需要在每次wx时在服务器端检查会话。sendocketmessage发送信息。我们需要这样做。只需判断“如果websocket信息中有错误,请清除本地会话”,然后要求applet再次请求服务器。

Websocket信息发送

如果要发送一条消息“尽快生成数据”,该消息存储在哪里?发送文本消息时,服务器接收数据并对其进行简单处理,然后将其返回给applet。这时,数据应存储在服务器内存中。因为websocket在接收到请求后仅处理字符串信息并将其直接返回给applet,所以当我们发送其他富媒体信息时,我们还可以将其以二进制模式发送给websocket服务器,然后再次将其返回给客户端,即websocket只执行文件传输”,以实现websocket流。看来很复杂。在这里,我使用了中国PAAS服务提供商leancloud的存储服务,“小程序将发送的文件存储在云中并返回文件地址”。然后,我们将文件信息标记为“仅发送文件的URL信息,然后applet判断请求是否为文件并显示。” 当然,南京小程序开发建议您也可以发送视频或音频,将它们保存在云中,并且仅发送相应的URL。我们这里的websocket服务器仅执行文件传输功能,文件存储由云负责。
  • 上一篇:基于腾讯云对象存储的微信小程序图像上传功能南京小程序为您分享
  • 下一篇:微信小程序南京小程序开发认为不得不说的几件事
  • 版权备注
    最新资讯
    2021-11-02
    微信小程序开发最佳实践
    最开始小程序的开发和应用,现在小程序的开发越来越成熟,完善了很多API、组件、架构等,社区也从原来的零星到现在是不大不...
    2021-11-02
    微信小程序使用goeasy实现websocket实时通讯
    无需下载安装,可在微信好友、微信群之间快速转发。用户只需扫码或点击微信即可立即运行。拥有类似app的用户体验,让微信a...
    2021-11-02
    微信小程序表单提交复选框无法取值
    开始学小程序,这个ChecBox值弄了一个下午,百度没有靠谱的回答论坛问大神 微信小程序表单提交复选框取不了值 <label cla...
    2021-10-22
    微信公众号和视频号如何流量融合?
    最近微信公众号和视频号同时咨询的比较多。今天给大家分享下,微信公众号和微信视频号如何进行流量互通融合。 1,视频号...
    2021-10-22
    微信公众号和视频号如何流量融合?
    最近微信公众号和视频号同时咨询的比较多。今天给大家分享下,微信公众号和微信视频号如何进行流量互通融合。 1,视频号...
    随机资讯
    2020-02-03
    南京小程序开发解析开发小程序商城的优势
    中小型新项目运营大城市问世后,很多公司已经运用中小型新项目运营大城市找寻大量的客户资料,因此中小型新项目运营大城市...
    2020-01-20
    南京小程序开发是怎么做商城小程序培养用户的几个技巧
    伴随着挪动互联网发展,很多企业期望根据开发设计自身的中小型企业程序流程,使自身的商品在中小型程序流程市场销售中,较大...
    2020-01-20
    南京小程序开发定做个小程序要多少钱
    处在it行业的人们想来对小程序的受欢迎之势早已有一定的掌握了。人们时时刻刻都能体会到它的受欢迎,跳一跳霸屏的那时候...
    2020-02-03
    南京小程序开发呼吁大家不要忽略小程序的新功能
    微信小程序不断创新和发展趋势,每一次升级,微信小程序常常让我们产生不一样的幸福。南京小程序开发呼吁人们应当更为关心...
    2020-02-13
    基于腾讯云对象存储的微信小程序图像上传功能南京小程序为您分享
    在使用腾讯云对象存储之前,该公司一直在使用传统的FTP上传模式。随着用户数量的增加,FTP暴露了越来越多的问题。1.传输效...