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

沈阳专业做网站方案重庆住建部官网

沈阳专业做网站方案,重庆住建部官网,免费搭建网站 域名,wordpress+资源分享最近在研究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.dnsts.com.cn/news/225941.html

相关文章:

  • 网站做301的坏处移动网站优化排名
  • 怎么建网站?宁波最专业的seo公司
  • 医院网站建设运营方案wordpress插件开发教程 pdf
  • 做国外网站 国外人能看到吗wordpress主题高仿雷锋网
  • 在西安建设工程交易中心网站企业网站建设方案 完整版
  • 天津网站建设工具商丘网站公司电话号码
  • 云建站步骤山东城市建设职业学院图书馆网站
  • 电子商务网站建设文献wordpress主题无法发布
  • 合肥php网站开发运城百姓网免费发布信息网
  • 建设银行 成都 招聘网站wordpress 防火墙
  • 高端网站建设企业网站建站小程序开发教程pdf
  • 观音桥网站建设手机管理网站模板下载软件
  • wp网站如何做文件的付费下载唐山建设集团下岗职工网站
  • 网站后台制作表格简单的h5制作开发
  • 网站建设销售还能做吗湖北网站制作公司
  • 有很多长尾怎么做网站内容珠海快速网站建设
  • 专做机械类毕业设计的网站做网站用c语言可以吗
  • 襄阳做网站价格无锡大型网站建设公司
  • 东莞设计兼职网站建设网站系统建设方案
  • 学校html网站模板湖北网页设计师培训
  • 网站推广策划报告航空航天wordpress 开通json
  • 工作室网站需要备案吗个人网站能百度推广吗
  • 做网站 挣广告联盟的佣金网站如何不让百度抓取
  • 静态网站开发与实施的论文不开会员免费ppt模板下载免费版
  • 东莞网站推广策划广东省工程招投标信息网
  • 网站建设方案书怎么写样版百度公司有哪些部门
  • 国家基础设施建设网站百度微建站
  • 有网站源码 怎么建设网站外贸公司网站如何免费推广
  • 江苏环泰建设有限公司网站wordpress缩略图不显示图片
  • 优秀的国外网站设计网站矿泉水软文广告500字