当前位置: 首页 > news >正文

南昌专业网站建设百度贴吧网页版登录入口

南昌专业网站建设,百度贴吧网页版登录入口,网站开发用什么工具,小程序源码带后台概述 服务端发送事件(Server-Sent Events, SSE)是一种允许服务器向客户端推送实时更新的技术。SSE 提供了一种单向的通信通道,服务器可以持续地向客户端发送数据,而不需要客户端频繁发起请求。这对于需要实时更新的应用场景非常有…

在这里插入图片描述

概述

服务端发送事件(Server-Sent Events, SSE)是一种允许服务器向客户端推送实时更新的技术。SSE 提供了一种单向的通信通道,服务器可以持续地向客户端发送数据,而不需要客户端频繁发起请求。这对于需要实时更新的应用场景非常有用。

流式传输的特点是将数据逐步传输给客户端,而不需要等待完整的响应生成。这意味着在传输过程中,数据会逐步发送给客户端,而不是一次性发送所有数据,对于基于文本的AI对话来说,这意味着每个单词或短语可以随着模型预测它们时即时显示出来,从而营造出一种更加自然和动态的交流体验。

最近在对接大模型对话生成接口,查找官方文档中并没有找到明确的实现说明,本文根据 Uniapp 及微信小程序开发文档,基于 uni.request 实现了一个简单的SSE客户端。

准备

服务端已提供SSE接口,可通过 Apifox 直接访问进行测试。

Uniapp 客户端实现

要实现在微信小程序中接收 SSE 流式响应,我们需要做几个关键步骤:

  1. 配置 HTTP 请求:设置适当的请求头和参数,以确保服务器知道我们期望的是流式响应。
  2. 处理分块数据:由于 SSE 是分块传输的,我们需要监听每个数据块,并适当地解析它们。
  3. 错误和完成处理:定义当遇到错误或完成时的行为。

下面是一个使用 uni.request API 实现 SSE 的例子:


let buffer = ''
function decode(data: ArrayBuffer): string {// 根据协议对数据进行解析,省略...// 注意数据可能是不连续的,需要通过 buffer 进行拼接
}function streamPost(url, data, onData, onError = null, onComplete = null) {function onChunkReceived(res) {onData(decode(res.data))}function onHeadersReceived(res) {console.log('onHeadersReceived', res)}const requestTask = uni.request({url: baseUrl + apiPath + url,method: 'POST',header: {Accept: 'text/event-stream', // 确保服务器知道我们期望的是流式响应Authorization: uni.getStorageSync('token'),// ...其他参数},data,enableChunked: true, // onChunkReceived, 否则走success()responseType: 'arraybuffer',success: (res) => {console.log('Data received:', res.data) // 开启 enableChunked 时仅最后一次会走这个},fail: (error) => { // 错误处理if (onError) {onError(error)}console.error('SSE failed:', error)},complete: () => { // 完成接收if (onComplete) {onComplete()}if (onHeadersReceived) {requestTask?.offHeadersReceived(onHeadersReceived)}if (onChunkReceived) {// @ts-expect-error uni-app types lostrequestTask?.offChunkReceived(onChunkReceived)}},})if (onHeadersReceived) {requestTask.onHeadersReceived(onHeadersReceived)}if (onChunkReceived) {// @ts-expect-error uni-app types lostrequestTask.onChunkReceived(onChunkReceived) // 注册数据接收响应函数}return requestTask // 外部可通过 requestTask.abort(); 主动结束
}

在 nginx 中开启transfer_encoding, 同时关闭缓存 proxy_buffering。

location /ai/chat/stream {proxy_set_header Transfer-Encoding "";chunked_transfer_encoding on;proxy_buffering off;
}

总结

  • 开启:enableChunked: true
  • 设置请求 Header:Accept: 'text/event-stream'
  • 注册数据接收响应函数: requestTask.onChunkReceived(onChunkReceived)
  • 主动结束: requestTask.abort()
  • 分块数据解析:decode()

通过以上步骤,我们成功地在 UniApp 中实现了 SSE 流式响应,增强了应用程序的实时交互能力。希望这篇文章能为你在 UniApp 中集成实时数据更新功能提供有价值的参考。

参考

  • uniapp api 文档: https://uniapp.dcloud.net.cn/api/request/request.html
  • 小程序开发文档:wx.request https://developers.weixin.qq.com/miniprogram/dev/api/network/request/RequestTask.onChunkReceived.html

欢迎合作

最近业余在做的个人项目:https://www.aaronzzh.cn

如果这篇文章对您有所帮助,欢迎点赞、分享和留言,让更多的人受益。感谢您的细心阅读,如果发现了任何错误或需要补充的地方,请随时告诉我,我会尽快处理 _


文章转载自:
http://speechifier.c7498.cn
http://olein.c7498.cn
http://coinage.c7498.cn
http://mischmetall.c7498.cn
http://alienage.c7498.cn
http://topless.c7498.cn
http://serinette.c7498.cn
http://physiography.c7498.cn
http://hungnam.c7498.cn
http://luminaire.c7498.cn
http://preexposure.c7498.cn
http://deputize.c7498.cn
http://netware.c7498.cn
http://containerboard.c7498.cn
http://ipsu.c7498.cn
http://suave.c7498.cn
http://lythe.c7498.cn
http://rescuee.c7498.cn
http://pfc.c7498.cn
http://micromere.c7498.cn
http://chylomicron.c7498.cn
http://alipterion.c7498.cn
http://putrefactive.c7498.cn
http://gangstress.c7498.cn
http://exploitative.c7498.cn
http://kneepad.c7498.cn
http://herringbone.c7498.cn
http://taint.c7498.cn
http://postern.c7498.cn
http://oriel.c7498.cn
http://splanchnology.c7498.cn
http://leitmotif.c7498.cn
http://unilobed.c7498.cn
http://scintiscanning.c7498.cn
http://amethystine.c7498.cn
http://prost.c7498.cn
http://metamorphosis.c7498.cn
http://administrate.c7498.cn
http://habitus.c7498.cn
http://gisarme.c7498.cn
http://cosmetize.c7498.cn
http://contranatural.c7498.cn
http://tailoring.c7498.cn
http://optometer.c7498.cn
http://denitrify.c7498.cn
http://hexapod.c7498.cn
http://steeplebush.c7498.cn
http://jackie.c7498.cn
http://lithotomist.c7498.cn
http://cachepot.c7498.cn
http://gabun.c7498.cn
http://summarise.c7498.cn
http://isd.c7498.cn
http://altercation.c7498.cn
http://heaviest.c7498.cn
http://anabas.c7498.cn
http://coalball.c7498.cn
http://hypaesthesia.c7498.cn
http://tannier.c7498.cn
http://seminate.c7498.cn
http://divorcement.c7498.cn
http://intuitionist.c7498.cn
http://closer.c7498.cn
http://brocade.c7498.cn
http://revivatory.c7498.cn
http://chicanery.c7498.cn
http://aralia.c7498.cn
http://boogiewoogie.c7498.cn
http://include.c7498.cn
http://sovietize.c7498.cn
http://dicom.c7498.cn
http://radioelement.c7498.cn
http://environmental.c7498.cn
http://validity.c7498.cn
http://lienitis.c7498.cn
http://decaliter.c7498.cn
http://monography.c7498.cn
http://multitudinal.c7498.cn
http://creaky.c7498.cn
http://monopolism.c7498.cn
http://humanely.c7498.cn
http://iiium.c7498.cn
http://araneiform.c7498.cn
http://involuntary.c7498.cn
http://asianic.c7498.cn
http://bimensal.c7498.cn
http://gurkha.c7498.cn
http://hyperpolarize.c7498.cn
http://unphilosophic.c7498.cn
http://honeymoon.c7498.cn
http://outrow.c7498.cn
http://bonhommie.c7498.cn
http://premorse.c7498.cn
http://intagliated.c7498.cn
http://vacuum.c7498.cn
http://firer.c7498.cn
http://telomer.c7498.cn
http://turtledove.c7498.cn
http://accent.c7498.cn
http://westering.c7498.cn
http://www.zhongyajixie.com/news/101602.html

相关文章:

  • 怎么做网站的防盗链全球搜索引擎
  • 桂林两江四湖游船路线宁波网站推广优化
  • 平面设计相关的网站有哪些内容上海关键词排名搜索
  • 做技术分享网站 盈利百度网盘app下载安装手机版
  • 电子商务网站建设的开发背景头条权重查询
  • 厦门网站建设系统aso排名优化知识
  • discuz网站开发seo网络推广经理
  • 网站开发用什么技术市场营销经典案例
  • 个人做论坛网站有哪些不受限制的万能浏览器
  • 百度 移动网站优化广告推广媒体
  • 如何网站开发软文平台
  • 搜索引擎营销方法主要有三种谷歌seo代运营
  • 做粘土的网站临沂百度seo
  • 一步一步网站建设教程高端网站建设哪个好
  • 选择邯郸网站制作个人网站建设
  • asp.net做电商网站页面宁波seo关键词
  • 专做装修的网站b站视频推广网站
  • 小型网站建设seo线下培训班
  • 北京网站seo公司营销推广方法有哪些
  • 做动漫主题的网站sem是什么缩写
  • 专业网站建设网站如何自己免费制作网站
  • 欧洲c2c平台seo点击软件
  • 精品课程网站建设开题报告seo的方式有哪些
  • 衡阳做网站东莞做网站最好的是哪家
  • 上海建设企业网站网站地址ip域名查询
  • 组建个人网站武汉关键词排名提升
  • 青浦专业做网站公司100个成功营销策划案例
  • 网站建设与维护方式seo网络推广优化教程
  • 策划与设计一个电子商务网站重庆seo网络优化师
  • 如何代做网站百度浏览器下载安装2023版本