app.js let socketMsgQueue = [] let isLoading = false App({ globalData: { userInfo: null, localSocket: {}, callback: function () {} }, showLoad() { if(!isLoading) { wx.showLoading({ title: '请稍后...', }) isLoading = true } }, hideLoad() { wx.hideLoading…
本文版权归 OSChina jsongo0 所有,转载请标明出处,以示尊重! 原文:https://my.oschina.net/jsongo/blog/757871 为什么需要websocket?传统的实时交互的游戏,或服务器主动发送消息的行为(如推送服务),如果想做在微信上,可能你会使用轮询的方式进行,不过这太消耗资源,大量的请求也加重了服务器的负担,而且延迟问题比较严重.如果是自己开发的app,为了解决这些问题,很多团队会自建socket,使用tcp长链接.自定协议的方式与服务器进行相对实…
一)前言 在微信小程上实现聊天功能,大致有三种方式:1)小程序云开发 2)购买第三方IM服务 3)使用自己的服务器自己开发. 这里重要讲使用自己的服务器自己开发,并且是基于vs的开发. 网上提供的解决方案大多都是使用Microsoft.AspNetCore.SignalR来完成,但是通过研究,发现以下问题 1)Microsoft.AspNetCore.SignalR必须基于.NET Framework 4.6.1以上和 .NET core 2.1以上,也就是vs2017以上,最好是vs2019…
服务端 在windows下执行 node  server.js 也可参照我的前一篇部署https var httpServ = require('http') var WebSocketServer = require('ws').Server; var app = httpServ.createServer().listen(8080); var ws = new WebSocketServer({ server: app }); ws.on('connection', function(ws…
目录 0.概述websocket 1.app.js写法 2.后台写法 0.概述websocket (1) 个人总结:后台设置了websocket地址,服务器开启后等待有人去连接它. 一个客户端一打开就去连接websocket地址,同时传递某些识别参数.这样一来后台和客户端连接成功了,然后后台就可以发消息给客户端了,(客户端也可以再回话给后台). (2) socket叫套接字,应用程序用socket向网络发出请求或者应答网络请求. (3) 官方解释的socket 建立连接四步骤: 服务器端开启so…
/** 初始化websocket stomp文档 http://jmesnil.net/stomp-websocket/doc/*/initSocket: function () {var that = this;// socket是否连接var socketConnected = false;// 待发送的消息队列var messageQueue = [];// 是否断线重连var reconnect = true;// 断线重连次数var reconnectnum = 0; // 发送消息f…
小程序开发过程出现的问题: 文本过长,以致于在view中显示不全,没有自动换行的问题 解决方法: 在wxss样式文件中添加样式 .font-break { word-break:break-all; } 然后在对应的view上引用即可 <view class="col-4 font-break"> {{item.billCode}} </view> 效果:…
思路: 1.小程序端获取用户ID,发送至后台 2.后台查询用户ID,如果找到了该用户,返回Token,没找到该用户,保存到数据库,并返回Token 小程序端如何获取用户ID: 小程序端 wx.getUserInfo() 可以获取到用户信息 其中 encryptedData 解密之后可以得到微信 UnionID,那么如何解密 encryptedData 微信提供的解密 DEMO 包含4个版本:C++,Node,PHP,Python,Python需要安装pycryptodome. 解密 encryp…
前言: 最近做的小程序活动规则内容比较多,且一直处于修改中.由于小程序并不支持类似Html5中的预排版,所以,活动规则内容修改较大的时候,仍需要对新的内容用小程序的<text>组件做下排版.如此反复几次,就感觉太浪费时间了,所以就写了这个工具页面. 适用范围: 1. 文案部分父层容器及内部相关样式已经写好,文案部分格式比较简单,可以直接用<text>组件来组织: 2. 活动规则内容保存在txt文件中,已在记事本文档中排好大致的版式(换行.隔行等). 工具代码: <!DOCTY…
// succ.wxml <view>WIFI ssid:{{wifissid}}</view> <view>WIFI bssid:{{wifiBssid}}</view> // succ.js var app = getApp() Page({ data: { wifissid: '', // WIFI ssid wifiBssid: '' // WIFI bssid }, onLoad: function (e) { // 获取参数 var that =…