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

兰州网站建设q.479185700棒沈阳专业做网站方案

兰州网站建设q.479185700棒,沈阳专业做网站方案,网站建设国际标准,游戏 网站 模板最近在研究H5推送#xff0c;发现除了我们常用的WebSocket以外#xff0c;其实还有一种协议也能实现H5推送#xff0c;那就是SSE协议。 而且#xff0c;当前主流的大模型平台#xff0c;比如ChatGPT、通义千问、文心一言#xff0c;对话时采用的就是SSE。 什么是SSE协议… 最近在研究H5推送发现除了我们常用的WebSocket以外其实还有一种协议也能实现H5推送那就是SSE协议。 而且当前主流的大模型平台比如ChatGPT、通义千问、文心一言对话时采用的就是SSE。 什么是SSE协议 Server-Sent Events (SSE) 是一种基于HTTP协议的服务器到客户端的单向数据通信技术允许服务器向浏览器实时推送更新而不需要客户端通过轮询等方式反复请求数据。 SSE协议主要用于实现实时更新的Web应用比如股票报价、新闻更新、社交网络的新消息通知等场景。 那么同为H5推送的主流协议SSE和WebSocket有什么区别 SSE VS WebSocket 我们从以下几个方面来进行对比 维度SSEWebSocket协议原理基于HTTP/1.1通过长连接实现服务器单向推送通过独立的WebSocket协议建立双向实时通信连接易用性简单前端使用EventSource对象即可相对复杂需要更多的开发和配置工作兼容性现代浏览器广泛支持同样广泛支持但需注意旧版浏览器兼容性通信方向单向服务器→客户端双向服务器↔客户端事件驱动支持事件数据可通过事件类型区分需自行在应用层实现数据格式主要支持文本数据可携带自定义元数据支持文本和二进制数据格式灵活连接管理浏览器自动处理连接恢复可能面临连接断开问题开发者可全面控制连接状态和错误处理资源效率长期无数据传输时可能出现连接中断需重新连接建立连接后资源消耗相对更低无需频繁重建连接缓存策略利用HTTP缓存策略需要开发者自行实现缓存策略 综合以上对比结果若是H5动作较少的单向刷新场景例如股价刷新、新闻动态等建议选择SSE若是在线协作、实时游戏等H5跟服务端交互较多的场景建议使用WebSocket。 SSE实例 接下来我们就用SpringBoot写一个SSE实例。 首先是服务端引入spring-boot-starter-web包它自带支持SSE协议。 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency 接下来是创建SSE的Controller接口 package com.test.web;import lombok.extern.slf4j.Slf4j;import org.springframework.http.MediaType;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;import java.io.IOException;import java.util.HashMap;import java.util.Map;/*** SSE测试类*/Slf4jRestControllerRequestMapping(/sse)public class SseController {private static final MapString, SseEmitter map new HashMap();GetMapping(value /createSseEmitter, produces MediaType.TEXT_EVENT_STREAM_VALUE)public SseEmitter createSseEmitter(String clientId) {SseEmitter emitter new SseEmitter(0L);emitter.onCompletion(() - map.remove(emitter));emitter.onTimeout(() - map.remove(emitter));map.put(clientId, emitter);return emitter;}Scheduled(fixedDelay 1000) // 每隔5秒推送一次模拟数据public void pushDataToAllClients() {for (Map.EntryString, SseEmitter entry : map.entrySet()) {try {String data This is some updated data from server at System.currentTimeMillis();entry.getValue().send(SseEmitter.event().name(message).data(data));} catch (IOException e) {log.error(Error sending data to client, e);}}}} 然后是前端测试代码 !DOCTYPE htmlhtml langenheadmeta charsetUTF-8title实时股票价格监控/title/headbodyh1实时股票价格/h1div idstock-price/divscriptconst source new EventSource(/sse/createSseEmitter?clientId123456);source.onopen function() {console.log(Connection to the server was opened.);};source.onmessage function (event) {// document.getElementById(stock-price).innerHTML event.data;const logItem document.createElement(p);logItem.textContent event.data;document.getElementById(stock-price).appendChild(logItem);};source.onerror function(error) {console.error(Error occurred:, error);// 处理重连或其他错误逻辑};/script/body/html 由于SSE不支持跨域此处再加个NGINX代理 location /test {root /home;}location /sse {proxy_pass http://10.10.2.100:8080;proxy_http_version 1.1; # 使用HTTP/1.1以支持长连接proxy_set_header Upgrade $http_upgrade; # 用于Websocket和SSE的Upgrade头proxy_set_header Connection upgrade; # 设置Connection头为upgrade维持长连接proxy_set_header Host $host; # 传递原始Host头给后端proxy_cache_bypass $http_upgrade; # 忽略缓存对于实时连接很重要proxy_read_timeout 60m; # 增加读取超时时间以适应长时间的SSE连接} 运行结果如下 -EOF- 给大家分享一套基于SpringbootVue的停车场管理系统源码在实际项目中可以直接复用。(免费提供文末自取) 一、系统运行图 1、登陆页面 2、车位管理 3、车辆进出管理 二、系统搭建视频教程 源码免费领取方式 扫码后台回复  停车场
http://www.hkea.cn/news/14537681/

相关文章:

  • jsp网站开发四酷全书怎样申请免费网站空间
  • 网站制作比较好的公司济宁网站运营策略
  • 个人适合做什么网站增城微信网站建设
  • 建设银行查余额网站传奇手游网页版
  • php商城网站开发报告私人私密浏览器免费下载
  • 保定中小企业网站制作wordpress进入文字版
  • apache 本地网站大连网站如何制作
  • 灰色网站模板游戏介绍网站模板
  • 手机网站个人中心源码广州网站订制开发
  • 博览局网站建设深圳大浪有做网站的吗
  • 无障碍环境建设 网站做包装找灵感看什么网站
  • 做阿里网站的分录手机端网站建设教程
  • 导购网站开发要多少钱淮安网站建设工作室
  • 广州 门户seo优秀网站
  • 茶叶网站源码深圳品牌馆设计公司
  • 做一手楼房的网站营销型网站建设营销型网站建设
  • 网站优化提升速度网站建设:中企动力
  • 弹簧东莞网站建设网络推广运营
  • 南昌市建设规费标准网站无极限网站模板
  • 南京高端定制网站建设win怎么卸载wordpress
  • 那个网站做教学视频定做网站多少钱
  • 如何做付费阅读网站做网站费用多少钱
  • 怎么优化网站关键词网站建设书怎么写
  • 建材企业网站模板镇江网站建设教程
  • 免费推广网站注册入口wordpress sinaapp
  • 本地网站建设教程dw做网站链接数据库
  • 哪一个网站可以做任务拿佣金广安建设机械网站
  • 淘宝店铺网站建立哪个网站可以做彩经专家
  • 做一个招聘信息的网站_用什么做网站的软件wordpress怎么设置seo
  • wordpress进入站点拟定网络设计方案