南昌网站建设公司价位,网络维护员主要什么工作,合肥最好的网站建设公司排名,黑镜主题 wordpress需求 
前端向后台服务器发请求获取验证码#xff0c;然后端游输入验证码#xff0c;向我的后端发请求获取验证信息。后台给游戏端返回信息的时候同时给微信小程序端返回验证结果。意思是不要微信小程序端主动触发#xff0c;验证是否绑定的请求。 
思路 
后端生成验证码时存…需求 
前端向后台服务器发请求获取验证码然后端游输入验证码向我的后端发请求获取验证信息。后台给游戏端返回信息的时候同时给微信小程序端返回验证结果。意思是不要微信小程序端主动触发验证是否绑定的请求。 
思路 
后端生成验证码时存入用户的唯一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(ipsecretIp){client.send(JSON.stringify({openid: secretOpenid,result: 绑定成功,}));}});//.....} 
记录一下。。。。