前端uni微信小程序和后端nodejs使用websoket

这篇具有很好参考价值的文章主要介绍了前端uni微信小程序和后端nodejs使用websoket。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求

前端向后台服务器发请求获取验证码,然后端游输入验证码,向我的后端发请求获取验证信息。后台给游戏端返回信息的时候同时给微信小程序端返回验证结果。意思是不要微信小程序端主动触发,验证是否绑定的请求。

思路

后端生成验证码时存入用户的唯一Id和ip,前端获取到验证码后,与后台建立 WebSocket 连接,然后游戏端填入验证码向后端接口发起请求,遍历整个clients列表,与数据库中的ip进行匹配,向匹配的ip发送消息。由于可能存在不同客户端Ip相同的情况,这里则需要根据唯一ID进行区分

代码

前端
// 建立 WebSocket 连接
					const socket = uni.connectSocket({
					  url: 'wss://xxxx.com:8889',
					  success() {
					        console.log("ws连接成功!");
					  },
					  fail() {
					        console.log("ws连接失败!");
					   },
					});
//监听WebSocket接收消息事件
					socket.onMessage((message)=>{
						console.log('监听WebSocket接收消息事件',message.data);
						const data = JSON.parse(message.data)
						if(data.type == 'invalid'){
							uni.showToast({
								title: '无效验证码',
								duration: 2000,
								icon:'none'
							});
						}else{
							if(data.openid == this.userOpenid){
								if(data.result=='绑定成功'){
									uni.showToast({
										 title: "绑定成功",
										 icon:'success',
										 duration:1500,
										 complete: () => {//在这里执行跳转操作
											 setTimeout(()=>{
												 uni.switchTab({
													url:'/pages/index/index'
												 })
											 },1500)
										 }
									})
									uni.closeSocket({
									  success() {
										console.log("WebSocket连接已关闭");
									  },
									  fail() {
										console.log("关闭WebSocket连接失败");
									  },
									});
								}else{
									uni.showToast({
										title: '绑定失败',
										duration: 2000,
										icon:'none'
									});
								}
							}
						}
						
					})
					
后端
//app
const WebSocket = require('ws')
const wss = new WebSocket.Server(
    {
        server:httpsServer
    },
    ()=>{
        console.log('socket start');
    }
)
// 将wss对象挂载到全局对象global上,在其他页面使用global.wss访问
global.wss = wss

//接口
exist(){
    //.....
      // 向前端小程序发送绑定结果
                    global.wss.clients.forEach((client) => {
                        //ip客户端IP地址
                    const ip = client._socket.remoteAddress ||          client.upgradeReq.connection.remoteAddress;
                        console.log('客户端IP地址:', ip,secretIp);
                        if(ip==secretIp){
                            client.send(JSON.stringify({
                              openid: secretOpenid,
                              result: '绑定成功',
                            }));
                        }
                    });

    //.....

}

记录一下。。。。文章来源地址https://www.toymoban.com/news/detail-772168.html

到了这里,关于前端uni微信小程序和后端nodejs使用websoket的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序练手实战:前端+后端(Java)

    现在微信小程序越来越火了,相信不少人都通过各种途径学习过微信小程序或者尝试开发,作者就是曾经由于兴趣了解开发过微信小程序,最终自己的毕业设计也是开发一个微信小程序。所以现在用这篇博客记录我之前开发的一些经验和一些心得吧。 springboot后端架构构建 小

    2024年02月10日
    浏览(30)
  • 微信小程序商城搭建--后端+前端+小程序端

    前端技术:React、AntdesignPro、umi、JavaScript、ES6、TypeScript、 小程序 后端技术:Springboot、Mybatis、Spring、Mysql 后端采用Springboot搭配前端React进行开发,完成用户管理、轮播图管理、一级分类管理、商品管理、日志管理。 支持多图上传功能,封面图。 采用JWT+拦截器进行接口拦截

    2024年02月05日
    浏览(34)
  • 微信小程序登录+获取手机号码(前端+后端)

    上面这张是微信小程序官方原图,登录流程如上图所示,下面一步步进行以及说一下碰到的坑。 1.wx.login()获取code         调用微信小程序官方提供的方法获取code提供给后端用以换取session_key、openid。         注意:code只能使用一次就会失效,且有效期为5分钟 2.后端收到

    2024年02月12日
    浏览(33)
  • 微信小程序登录流程(包含前端、后端代码)

    在微信小程序的开发过程中,如果想要保留 用户 的 数据 (比如: 操作记录 、 购物车信息 等等)就必须要 用户 登陆。为什么呢?比如说,数据库中有一条 数据 你如何知道这条数据属于谁?属于那个用户呢?这就需要用户登录来获取 用户 的 唯一标识 从而确定这条数据是属

    2024年02月03日
    浏览(32)
  • 搭建flask后端和微信小程序前端

    目录 一、准备工作 (1)我的前端代码 (2)我的后端代码 (3)后端运行成功的截图 (4)前端运行成功的截图  (5)整体运行成功的截图 二、部署后端  (1)在腾讯云的学生入口处购买服务器(建议选择ubuntu系统),设置管理秘钥,方便在本地远程连接。 (2)在本地的

    2024年02月04日
    浏览(39)
  • 前端程序员和后端程序员有什么不同?我来告诉你薪资待遇差多少

    在过去,前端程序员的工资可能需要几倍于后端程序员才能相当。因为前端程序员需要处理的是看得见的部分,而且需要兼顾不同的浏览器、设备和操作系统,工作量较大。但是,随着H5的盛行和现代浏览器对HTML5、JavaScript和CSS的支持越来越好,前端程序员可以开发一次代码

    2023年04月22日
    浏览(75)
  • 在线选课的微信小程序(微信前端+网站后端)

    目录 一、前言 二、微信小程序端(老师、学生) 1.学生用户前端小程序界面  2.老师前端小程序界面 三、后端(管理员、老师、学生) 3.老师后端 4.管理员后端 四、代码获取与调试 这是一个在线选课的微信小程序,使用了 idea + Navicat + maven + vue + 微信开发者工具 。 1.学生用

    2024年02月11日
    浏览(37)
  • 微信小程序获取用户手机号码教程(前端+后端)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 在开发微信小程序时,获取用户手机号码是常见的需求之一。本教程将为你详细介绍如何在前端和后端实现获取用

    2024年02月08日
    浏览(40)
  • 【微信小程序】前端+后端 :第一篇(基于javaweb 案例)

    博主:👍不许代码码上红 欢迎:🐋点赞、收藏、关注、评论。 点击新建项目 这里记得选择web application 点击下一步 这是我们需要的目录结构 如果没有如下图这个东西 可以点击+号 选择Artifact 即可 4.1、创建一个新的页面pages 目录结构 4.2、demo2.js 4.3、demo2.wxml 微信小程序端

    2024年02月09日
    浏览(33)
  • 微信小程序获取用户手机号码教程(前端+后端)

    在开发一款微信小程序时,需要用户进行微信登录,获取用户的手机号码来作为用户的唯一标识(userId),于是探索获取用户手机号码的方式; (当然,通过wx.login来获取code,进而换取用户的openid也是可以的) 目前版本的微信小程序获取用户手机号码的方式如下: 前端开发

    2024年02月12日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包