当前位置: 首页 > 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/85070.html

相关文章:

  • 网站上的图是怎么做的网站开发属于知识产权吗
  • 仙桃有哪些做网站的公司用手机可以做网站
  • 怎么做示爱的网站项目式学习
  • 苏州市住房和城乡建设局网站首页有哪些网站是可以接单做任务的
  • 百度网站推广怎么做寻找网站优化公司
  • dedecms企业网站模板免费下载wordpress媒体库现实不全
  • 廉政建设网站线上课程
  • 网站模块报价网站建设swot分析
  • 西安seo网站推广优化酒店微网站建设
  • 建设一个私人视频网站wordpress style不更新
  • 网站怎么做流程wordpress 仅显示标题
  • 长沙好的网站建设品牌北京 好的网站制作
  • 企业型网站建设怎样收费行业协会网站建设
  • 信阳企业网站建设网站建设周期表
  • 为什么搜索不到刚做的网站app推广工作是做什么的
  • 都哪些网站可以做gif贵阳制作网站的公司
  • 视频网站直播如何做中文wordpress教程
  • 公司网站建设说明书十大手游平台app排行榜
  • 网站繁体和中文这么做常州网站建设百科
  • 商务网站规划设计要点响应式网站的排版
  • 中装建设网站北京海淀区的科技有限公司
  • 网站开发与设计500强公司网站建设 500强建站
  • 保山市建设局网站登录做徽章标牌的企业网站
  • 网站做蜘蛛池有用吗自动seo系统
  • 成都哪里有网站开发公司上饶网站建设企业
  • 求人做网站服务好的微网站建设
  • 上海做网站多少费用网站常用的优化方法
  • 江西营销型网站建设wordpress数据库用户导出
  • 网站备案需要当面核验哪些信息公司常用网站开发软件
  • 微信 网站应用开发天津网站建设方案托管