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

推动品牌建设的网站网站黄页推广软件

推动品牌建设的网站,网站黄页推广软件,看到一个电商网站帮做淘宝,京东联盟我在探索ChatGPT的使用过程中#xff0c;发现了一个有趣的现象#xff1a;ChatGPT在实现流式返回的时候#xff0c;选择了SSE#xff08;Server-Sent Events#xff09;#xff0c;而非WebSocket。 那么问题来了#xff1a;为什么ChatGPT选择了SSE#xff0c;而不是We…我在探索ChatGPT的使用过程中发现了一个有趣的现象ChatGPT在实现流式返回的时候选择了SSEServer-Sent Events而非WebSocket。 那么问题来了为什么ChatGPT选择了SSE而不是WebSocket呢。 SSE是什么 SSE全称Server-Sent Events译为服务器发送事件它是一种Web技术允许服务器端实时地向客户端推送信息。SSE运行在HTTP协议之上它利用持久化的HTTP连接以事件流Event Stream的形式将数据发送给客户端由客户端监听后获取。服务器端会定期向这个连接发送更新这些更新被封装在一个或多个HTTP包中每个包含有更新的事件流。这样当有新的更新时服务器就不需要等待客户端的请求而是直接将数据推送给客户端。当连接被关闭或出现故障时客户端会自动重新发送请求重新建立连接。这确保了数据传输的连续性和实时性。 那么SSE有什么优点呢? 单向通信SSE只支持从服务器到客户端的单向通信服务器可以主动发送数据用户只能接收。高效实时因使用持久化连接服务器可以实时地将数据推送给客户端而无需客户端频繁发起请求。 什么是WebSocket WebSocket是一种网络通信协议它最早被提出来是为了解决HTTP连接的一大限制HTTP协议中一个客户端发送给服务端的请求必须由服务端返回一个响应这使得服务端无法主动向客户端推送数据。WebSocket的通信过程如下 客户端通过发送一个特殊的HTTP请求向服务器请求建立WebSocket连接。这个请求类似于GET /chat HTTP/1.1 Upgrade: websocket Connection: Upgrade服务器响应这个请求确认建立WebSocket连接。这个响应类似于HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade之后客户端和服务器就可以通过这个常开的连接自由地发送或接收消息。 SSE与WebSocket的比较 你可能疑问为什么不直接使用WebSocket它似乎更为通用也同样支持实时数据推送。这就是我们需要对比两者的理由。 通信模式SSE只支持服务器向客户端的单向通信而WebSocket支持全双工通信即服务器和客户端可以互相发送数据。对于ChatGPT这样的应用来说大多数情况下用户的请求是稀疏的而服务器的响应是密集的因此SSE的单向通信模式更为合适。网络协议SSE运行在HTTP协议上因此它可以提供更高的兼容性和灵活性。举个例子如果你的产品已经部署在Web服务器上那么你大概率无需做任何改动就可以使用SSE技术。而WebSocket则需要单独的服务器和端口。 除此之外SSE和WebSocket在消息大小、连接数量、跨域支持等方面都有一些细微的差别我们在具体设计时需要根据实际需求和制约因素做出选择。 使用Golang和React实践SSE 首先我们需要创建一个Golang服务器。这个服务器将监听8000端口等待客户端的SSE连接请求并定时向连接发送消息。为了简单起见这里我们假设服务器每秒产生一条新消息。以下是Golang服务器的代码 package main ​ import (fmtlognet/httptime ) ​ func main() {http.HandleFunc(/events, func(w http.ResponseWriter, r *http.Request) {w.Header().Set(Content-Type, text/event-stream)w.Header().Set(Connection, keep-alive)w.Header().Set(Cache-Control, no-cache)w.Header().Set(Access-Control-Allow-Origin, *) ​for {fmt.Fprintf(w, data: Message at %s\n\n, time.Now())if flusher, ok : w.(http.Flusher); ok {flusher.Flush()} else {log.Println(Streaming unsupported!)return}time.Sleep(time.Second)}})http.Handle(/, http.FileServer(http.Dir(static)))log.Println(Listening on localhost:8000)http.ListenAndServe(localhost:8000, nil) }然后我们需要创建一个React客户端这个客户端会建立与Golang服务器的SSE连接并在收到新消息时更新页面。以下是React客户端的代码 import React, { useEffect, useState } from react; ​ function App() {const [events, setEvents] useState([]); ​useEffect(() {const eventSource new EventSource(http://localhost:8000/events);eventSource.onmessage (event) {setEvents((prevState) [...prevState, event.data]);};}, []); ​return (div classNameApph1Live updates from server/h1{events.map((event, i) p key{i}{event}/p)}/div); } export default App;这个应用程序将从服务器接收一个每秒更新一次的实时数据流并在客户端将这些更新显示出来。 总结 通过以上的分析和代码示例我们可以明白为什么ChatGPT会选择使用SSE而非WebSocket。请记住无论选择哪种实时数据推送技术必须考虑到你的应用程序的具体需求例如数据更新的速度、服务器和客户端的能力、网络条件等等。 如果上面的内容对你有帮助请点赞收藏哦我会分享更多的经验~
http://www.w-s-a.com/news/633911/

相关文章:

  • 常德网站制作建设毕设电商网站设计
  • 西安企业模板建站福州+网站建设+医疗
  • 邹城市住房和建设局网站仙居网站建设贴吧
  • 为什么要用CGI做网站网站手机优化显示
  • 做袜子娃娃的网站做网站要学的东西
  • 类qq留言网站建设企业做网站公司
  • 如何查到网站建设三足鼎立小程序开发公司
  • 交互网站怎么做的wordpress ssl 错位
  • 公司宣传 如何做公司网站郑州做网站那
  • 衡阳市城乡建设协会官方网站免费游戏网站模板
  • 小程序怎么做优惠券网站合肥建站网站平台
  • 民制作网站价格株洲企业seo优化
  • 网站建设 岗位职责网站建设百度索引
  • 网站建设的内容下拉网站导航用ps怎么做
  • 怎样做p2p网站海口免费自助建站模板
  • 给企业建设网站的流程图wordpress 添加子菜单
  • 企业网站带新闻发布功能的建站皋兰县建设局网站
  • 国内外做gif的网站wordpress数据库教程
  • 成都建站平台自己做一个网站需要多少钱
  • 景区旅游网站平台建设公司企业网站源码
  • 免费高清网站推荐喂来苏州网络科技有限公司
  • php做的大型网站有哪些备案博客域名做视频网站会怎么样
  • 去哪网站备案吗昭通网站建设
  • flash企业网站源码建筑材料采购网站
  • 网站可以换虚拟主机吗部门做网站优点
  • 如何做分类网站信息营销莱芜网页定制
  • 班级网站建设感想中国做视频网站有哪些
  • 做刷票的网站wordpress图片链接插件
  • 给客户做网站图片侵权沈阳做网站的地方
  • 网站开发步骤规划蓝天云免费空间主机