Hi,大家好!有能力才有可能,我叫樊能能, 也可以叫我 ‘二能’,我毕业以来一直从事web前端开发,涉及到的有小程序开发,app开发,网页开发等;
在2017年万众瞩目的微信小程序低调地进入了大众的生活,时到今日已经四年多的时间了,从一开始的无人问津,到现在炙手可热,恨不得每个商家都想分一杯羹。 都知道大量的app应用会占用手机内存使手机没有空间,使手机卡顿;有些app使用的频率很小,有些用户为了手机释放内存就在不断的下载与删除应用;这个问题一直困扰着我们迟迟没能有效的解决。 小程序的出现后,用户不需要再下载安装即可使用的应用,实现了应用“触手可及”的梦想。扫一扫或者搜一下即可打开应用,同时具有出色的使用体验,也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。心里一下舒坦了很多! 任何一个新出的产品都有着一段艰难曲折的发展历程,从刚开始的基础功能,到最后的不断壮大的功能体系,让用户爱不释手。
本篇文章将要讲的就是关于随着小程序的发展,多人共享功能的实现以及小程序的优化;
使用场景:多人想实现实时同步的功能像位置共享,购物车共享,在线聊天,协同编辑文档,多玩家游戏,股票基金的报价等。 在这种情况下如何实时更新呢?在讲解决实时更新的方案之前,咱们先看下网络协议相关内容吧。
最熟悉的网络协议(应用层):HTTP协议;其他网络协议(应用层):HTTPS SMTP MQTT RTMP
问
:在输入网站地址时,http://
这一部分通常不用输入,系统软件会自动补上,所有网页地址都少不了它,为啥呢?
答
:HTTP 是“超文本传输协议(Hypertext Transfer Protocol)”的意思。它用于从WWW服务器传输超文本到本地浏览器的传送协议。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来并展示。但是HTTP有一个的缺陷,它的通信是只能由客户端发起的,服务器无法主动向客户端推送消息。
案例: 微信小程序多人点餐功能,比如三个人点餐,每个人都可以都在小程序中点餐加备注,像‘我’点了一杯可乐,别人的菜单页面上就会提示出‘我’点了杯可乐。‘我’抬头一看气氛有些尴尬又多点了两杯,相应的立刻在菜单中弹出‘我’又点了两杯。最后由一个人下单即可。 那如何在小程序中实现这个功能呢?微信小程序已提供wx.webSocket的api,用法与h5的WebSocket的用法差不多。
⚠️每个微信小程序需要事先设置通讯域名,小程序只可以跟指定的域名进行网络通信,所以我们要根据自己的业务分别提供request请求域名,uploadfile域名,downloadFile域名,若使用webSocket我们需要提供相应的socket的合法域名。(每个月修改域名的次数是有限制的谨慎修改!)
wx.connectSocket({
url: 'wss://地址......'
});
//这里的wss://指的是安全链接,加密版,ws://就没有这么安全,他俩的区别就类似http与https的之间的差别。
wx.onSocketOpen(res => {
console.log('WebSocket连接已打开!')
})
wx.sendSocketMessage(data);
wx.onSocketMessage(res => {
console.log('服务器返回的数据:', res);
// 判断服务器返回的内容
// 1.服务器询问客户端是谁?将自己的用户信息,店铺信息, 桌号信息发送服务器
// 2.登陆成功后的心跳检测,断线重连
// 3.不同场景的提示,加菜,减菜,有用户加入购物车
})
wx.closeSocket();
wx.onSocketClose(res => {
console.log('WebSocket 已关闭!')
})
小程序示例
对刚接触小程序开发的朋友非常友好,能够很直观的了解到小程序的开发功能等;微信发票助手
小程序中,之后别的小程序可以通过接口获取到微信发票助手
小程序的信息,不需重复输入同一个公司的信息)小程序数据助手
能够很清晰的看到小程序使用的数据统计小程序助手
小程序的管理不在复杂,无需在浏览器中微信众平台登陆,所有相关自己的开发小程序都在小程序助手中。 已经有很久没写小程序了,还记得在2019年微信小程序推出了小程序的体验评分,其中包括性能评分,体验评分,最佳实践
。有效地让我们开发提高了代码调用的规范性,对小程序体验的重视。
建议使用以下wxss进行兼容
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
小程序这么火,这么方便,很多平台也陆续出了自己的小程序,支付宝小程序,字节跳动小程序,百度小程序,360小程序(主要是在pc端360浏览器中的小程序)。** **这些小程序带给我们了方便与机遇,开发的过程中组件,接口等方法很类似,其中只要是开发了一款小程序,可以通过平台提供的接口转成为本平台的小程序,但是会有一些不兼容的问题需要处理(实际操作中可能会很麻烦);目前知道uniapp开发,若有好用的支持多平台的小程序开发可以留言哦!
文章到此结束,希望对大家有所帮助。在互联网的飞速发展的环境中希望能够与大家共勉,跟上技术的潮流,谢谢大家!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。