微信小程序一对一聊天功能搭建难不难?

微信小程序一对一聊天功能搭建难不难?,第1张

微信小程序一对一聊天功能的搭建相对来说并不难,但需要一定的开发经验和技能。

                                 

以下是一些需要注意的点:

 1. 接口调用:小程序需要调用微信提供的接口来实现聊天功能,需要熟悉微信小程序开发文档和相关接口的使用方法。

 2. 数据库设计:需要设计数据库来存储聊天记录和用户信息,需要考虑数据库的表结构、字段类型、索引等。

 3. 实时通信:需要使用 WebSocket 或者长连接激喊等技术来实现实时通信,保证聊天信息的及时性和准确性。

 4. 安全性:需要考虑聊天信息的安全性,例如加密传输、防止 XSS 攻击等。

 5. 用户体验:需要考虑用户体验,例咐铅瞎如聊天界面的设计、消息提示、输入框的自动调整等。

总的来说,微信小程序一对一聊天功能的搭建需要一定的技术储备和开发经验,但是难度并不是很大,只要按照开发文档和相关规范进行开发,就可以实现一个稳定、安全、易衡空用的聊天功能。

公司新上线了一个微信小程序,在测试环境以及小程序体验版上测试一切正常,但上线之后,页面加载尤其慢。

经过运维排查,所有的请求到达服务器后均在1s内处理完成并响应,偶尔有2-3s的请求,极少。

既然服务端处理请求没有问题,那么,加载可能出现在小程序本身或网络延迟,但后者可能性较低。于是,使用fiddler抓包,其中一个加载较慢的请求结果如下:

关键时间节点如下:

· 客户端与服务器完成tcp链接时间是11:31:35(时分秒)

· 客户端开始向服务端发送请求的时间是11:31:36(时分秒)

· 服务端接收到请求的时间是11:31:36(时分秒)

· 服务端开始响应的时间是11:31:46(时分秒)

也就是说,从服务器接收到请求到开始响应耗时10s,可这跟运维查看的日志结果不符!

鉴于上面的抓包结果和生产日志结果相悖,决定使用curl对耗时较长的http请求进行分析。

运行结果如下

对应的结果含义如下:

· time_namelookup :DNS 域名解析的时候,就是把 https://zhihu.com 转换成 ip 地址的过程

· time_connect :TCP 连接建立的时间,就是三次握手的时间

· time_appconnect :SSL/SSH 等上层协议建立连接的时间,比如 connect/handshake 的时间

· time_redirect :从开始到最后一个请求事务的时间

· time_pretransfer :从请求开始到响应开始传输的时间

· time_starttransfer :从请求开始到第一个字节将要传输的时间

· time_total :这次请求花费的全部时间

那么对应的时间点应该敬者是:

· DNS解析耗时:0.005s

· TCP建立连接的耗时:0.035-0.005=0.03s

· SSL握手完成耗时:3.8-0.034=3.7s

· server处理数据的时间:3.8402-3.8401=0.0001s

· 总体的耗时:14.5s

emmm,按照这个结果来看,从服务器开始响应到传输完成一共耗时14.5-3.8=10.7s。

那么这里问题又来了,这结果跟fiddler的结果完全相反,到底是在哪个环节出了问题?

fiddler的结果显示从服务器接收到请求到开始响应耗时10s,是服务器处理请求消耗了10s;而curl显示服务器处理请求只用了0.0001s,响应开始到结束耗时10.7s。到底哪个是对的,难道是根据本身有问题?

于是在跟运维同事一波交流之后,得到请求流转过程如下:

客户端<---------->CDN服务器<---------->Nginx代理<---------->应用服务器<---------->DB

弄清请求流转过程之后,手动发送请求,实时查看Nginx和应用服务器日志,发现请求发出后,间隔一段时间(10s左右)Nginx日志才有输出,接着很快App Server日志也有输出(包括卜梁请求和响应)。事实就摆在眼前,是CDN服务器<---------->Nginx代理之间出现了问题,具体是为什么目前还不清楚。

那么fiddler和curl抓包的结果如何解释?

fiddler:从服务器接收到请求到开始响应耗时10s,是正确的。

curl:服务器处理请求只用了0.0001s,响应开始到结束耗时10.7s。这里就有问题了,要想解释得通,只能说time_pretransfer和time_starttransfer是CDN服务器的响应时间,由于配置了CND,在向小程序应用服务器发送请求时,会先请求到CDN服务型稿运器此时CDN服务器很快就响应了客户端的请求,但CDN服务器在转发请求到Nginx代理时出现了延迟,因此在curl的请求结果中才会看起来像是响应开始到响应结束耗时较长。

至于为什么请求从CND服务器到应用服务器会出现延迟,目前还没有结论。待更新

http://blog.51cto.com/h2ofly/1957171

http://developer.51cto.com/art/201704/536923.htm?foxhandler=RssReadRenderProcessHandler

1、学习html/css/js三件套

html:超文本标记语言(英语:HyperTextMarkupLanguage,简称:HTML)是一种用于创建网页的标准标记语言。您可以使用HTML来建立自己的WEB站点,HTML运行在浏览器上,由浏览器来解析。

css:css是CascadingStyleSheets的缩写,我们中文称为「串联样式表」,能让我们更精确的控制网页版面的文字、背景、字型等它能让我们只修正一个css文件,便可同时更新众多的网页版面外观及格式,还可以使html的文件内码更精简,缩小档案下载的指备带速度。

js:js是Javascript的缩写形式,而Javascript是一种基于对象和事件驱动并且具有相对安全性的客户端脚本语言。它在Web开发中JS占据着举足轻重的地位,所有交互、逻辑层的代码都应该由它来实现。

2、PHP/JAVA语言开发

对于微信小程序而言,前端程序是唯一差异于网站建设技术的,因此,只要前端程序过得了关,能够写前端的接口,那么您使用PHP,又或者java,以及asp.net的程序语言都是完全支持的。一般对于企业而言,都是采用php程序开发微信小程序;技术要求高一点的滚镇可以采用java程序开发。这些唯芦开发方式成都锐美网络都已实践,且能保证效果。

微信小程序常见使用“MINA”框架,ApacheMinaServer是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架,Mina可以帮助开发者快速开发高性能、高扩展性的网络通信应用,Mina提供了事件驱动、异步(Mina的异步IO默认使用的是JAVANIO作为底层支持) *** 作的编程模型。这个框架为微信小程序的运行提供了丰富的组件和API。微信小程序开发者要学会和掌握小程序的框架结构、数据绑定机制、模板、数据缓存、常用组件和API等相关知识。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12546303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存