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

如何让做树洞网站网站 关键词库

如何让做树洞网站,网站 关键词库,ui培训设计机构,广东短视频推广效果好1#xff0c;SSE 和 WebSocket 对比 SSE#xff08;服务器发送事件#xff09; SSE是一种基于HTTP的单向通信机制#xff0c;用于服务器向客户端推送数据。它的工作原理如下#xff1a; 建立连接#xff1a;客户端通过发送HTTP请求与服务器建立连接。在请求中#xff…1SSE 和 WebSocket 对比 SSE服务器发送事件 SSE是一种基于HTTP的单向通信机制用于服务器向客户端推送数据。它的工作原理如下 建立连接客户端通过发送HTTP请求与服务器建立连接。在请求中客户端指定了接收事件的终点Endpoint。 保持连接服务器接收到连接请求后保持连接打开并定期发送事件数据给客户端。 事件流服务器使用 “Content-Type: text/event-stream” 头部标识SSE连接并使用特定格式的数据事件流发送给客户端。 客户端处理事件客户端通过JavaScript的 EventSource 接口监听SSE连接一旦接收到事件就可以处理数据并更新页面。 SSE的特点和适用场景 单向通信SSE是从服务器到客户端的单向通信模型只能由服务器推送数据给客户端。 实时更新SSE适用于需要实时更新数据的应用场景如股票行情、新闻推送等。 简单易用使用SSE相对简单无需额外的库或框架支持可以直接使用浏览器的原生API进行开发。 WebSocket WebSocket是一种全双工的通信协议它通过在客户端和服务器之间建立持久连接实现双向通信。WebSocket的工作原理如下 握手阶段客户端向服务器发送WebSocket握手请求服务器返回握手响应。在这个阶段客户端和服务器协商选择协议和版本。 建立连接握手成功后客户端和服务器之间建立持久连接可以进行双向数据传输。 双向通信一旦连接建立客户端和服务器都可以主动发送消息给对方。数据可以以文本或二进制格式进行传输。 断开连接当任一方决定关闭连接时可以发送关闭帧来终止连接。 WebSocket的特点和适用场景 双向通信WebSocket支持双向通信客户端和服务器可以互相发送消息。 实时互动WebSocket适用于实时互动的应用场景如聊天应用、协作编辑等。 复杂性和灵活性相对于SSEWebSocket更为灵活可以处理更复杂的通信需求。它允许自定义消息格式、心跳检测、连接状态管理等。   2具体代码实现 2.1 后端 GetMapping(value /stock,produces MediaType.TEXT_EVENT_STREAM_VALUE)public SseEmitter streamStockPrice() {SseEmitter emitter new SseEmitter();// 模拟生成实时股票价格并推送给客户端Random random new Random();new Thread(() - {try {while (true) {// 生成随机的股票价格double price 100 random.nextDouble() * 10;// 构造股票价格的消息String message String.format(%.2f, price);// 发送消息给客户端emitter.send(SseEmitter.event().data(message));// 休眠1秒钟Thread.sleep(1000);}} catch (Exception e) {emitter.completeWithError(e);}}).start();return emitter;} 2.2 前端 $(#btn12).click(function (){const eventSource new EventSource(http://localhost:8080/test/test/stock);eventSource.onmessage function (event) {showMsg(event.data)}}) 2.3 最终效果 SSE 演示 3传统部署方式 nginx部署 4k8s部署方式 待研究 5问题 问题 1采用 nginx 部署时页面刷新很慢实际上服务器已经发了很多数据过来。 此问题待研究解决。 解决方法 nginx 做相关配置 配置如下 location /codeTest {proxy_pass http://127.0.0.1:18080/test;# proxy_http_version设置代理使用的HTTP协议版本为1.1。proxy_http_version 1.1;proxy_set_header Connection ;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# SSE 连接时的超时时间proxy_read_timeout 86400s;# 取消缓冲proxy_buffering off;# 关闭代理缓存proxy_cache off;# 禁用分块传输编码#chunked_transfer_encoding off} /codeTest是你希望使用的路径你可以根据需要进行修改。 proxy_pass指定了后端服务器的地址你需要将其替换为实际的后端服务器地址。 proxy_http_version设置代理使用的HTTP协议版本为1.1。 proxy_set_header设置一些必要的头部信息如连接方式、真实客户端IP等。 proxy_read_timeout 指令来设置 SSE 连接的超时时间。默认情况下Nginx 会在 60 秒后关闭空闲的连接这对于 SSE 来说是不合适的所以我们将超时时间设置为一天86400 秒。这样客户端和服务器之间的连接可以持续保持打开状态。 proxy_buffering off 指令来确保数据可以实时传输而不需要等待缓冲区满。在SSE请求中禁用缓冲以便正确处理SSE流式数据。 proxy_cache 对于 SSEServer-Sent Events连接通常不建议启用 Nginx 的代理缓存proxy_cache。因为 SSE 是一种长连接技术它通过保持持久连接来实时推送数据给客户端而代理缓存会将响应数据缓存起来并在后续请求中返回缓存的响应这与 SSE 的工作方式相违背。如果启用代理缓存Nginx 可能会缓存 SSE 的数据并在后续的连接中返回相同的缓存数据这样会导致客户端收到重复的消息破坏了 SSE 的实时性和准确性。 chunked_transfer_encoding 参数可以根据你的需求决定是否关闭。在 SSE 中通常不需要禁用分块传输编码因为它允许将数据以数据块的形式逐步传输与 SSE 的流式数据特性相符合。 proxy_pass 指令正确反向代理到你的 SSE 应用程序的地址和端口以使连接正确工作。 问题 2连接一段时候自动断开 解决方法参考如下文章 Springboot调整接口响应返回时长解决响应超时问题
http://www.hkea.cn/news/14481216/

相关文章:

  • 热度网络网站建设网页界面设计欣赏
  • 邢台网站制作那家便宜专业的购物网站定制
  • asp.net 怎样生成网站wordpress文章编译器修改
  • 化州网站建设深圳大型网站建设公司
  • 汉口网站建设公司wordpress commentor
  • 河南网站备案系统短信wordpress怎么更改介绍
  • 金阊网站建设企业注册信息查询单怎么打印
  • 创建了网站大家做网站都会去哪找素材
  • 广州做网站需要多少钱成都哪家公司做网站好
  • 禅城网站建设哪家好广州网站优化公司排名
  • 公司设计网站有什么好处手机微信打开文件是乱码
  • 网站三网合一什么意思网页设计与制作书
  • 网页制作工具的选择与网站整体风格是有关系吗廊坊seo计费管理
  • 枣庄专业做网站百度怎么推广自己的网站
  • 信誉好的南昌网站建设saharan wordpress
  • 安阳做网站的地方首都在线官网
  • 做电影网站赚钱吗网站点击量与排名
  • 餐饮公司网站模板下载做html网站模板
  • 网站如何更换空间论文答辩ppt范例模板
  • 网站开发文件夹中恒诚信建设有限公司网站
  • 如何做弹幕网站公司起名最吉利的字
  • 学习网站建设建议调查问卷wordpress主题格式
  • xp做网站服务器吗wordpress调整文章编辑界面
  • 九江市建设工程质量监督站网站帮做装修设计的网站
  • 东莞免费模版网站建设个人网站可以做商业用途吗
  • 今天最新新闻报道网站seo优化要懂得做微调
  • 昆山网站建设培训班怎么申请自己的小程序
  • vps 用ip可以访问网站么finecms
  • 黎平网站建设关闭wordpress注册邮件
  • 怎么做租房网站想学管理方面的培训班