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

简单学习 --> WebSocket

websocketwebsocket 是应用层 协议, 基于传输层Tcp 协议 的协议 ;这个协议可以实现服务器主动给客户端推送信息功能(本身Tcp就可以做到,但是HTTP不行)websocket报文格式websocket 和服务器建立连接的过程首先 客户端 发送 HTTP请求 给服务器 , 请求里 包含了一些特殊header , (告诉 服务器 要不要和我升级成 websocket) ,服务器 也会 返回响应给 客户端, (同意升级 ) , 这样客户端和服务器就建立了 websocket的 连接, 后续就使用 websocket 进行传输;就 跟 HTTP没关系了 ;websocket 的使用在java有两种形式使用功能 websocket使用Tomcat 提供的 websocket.api使用Spring 提供的 websocket.api使用websocket 例子服务器代码(首先引入websocket依赖)客户端代码(使用js)服务器创建 类 继承TextSocketHandler 类, 重写主要的4个方法 (TextsocketHandler类,websocket支持文本和二进制,这里这个就代表支持文本的类)把上面的类注册到Spring(交给Spring管理)配置路由(关联路径对应上面的 创建的websocketHandler 类)创建websocke类返回响应把创建的websocket 类的实例注册到Spring配置路由实现 接口注册路径有EnableWebsocket客户端js的 websocket, 的 send () 发送方法 , 只能 发送 字符串 , 所有要发送json数据要把json转成json字符串在处理前端和后端请求可以使用:JSON.stringify(json数据): 把json对象转成json字符串JSON.parse () : 把json字符串转成json前端使用 js 写 , 和服务器处理的流程一样: 1.连接成功 2. 收到消息 3. 连接异常 ,4. 连接关闭 ;body input typetext idtext button idsend-button发送/button script // 通过js ,创建Websocket对象 ; // 创建对象需要有路径 , 就是 websocket 传输消息的路径 , 对应服务器的路径, 就是发送信息给服务器 ; // ws : 代表的是 协议名称 , ws 就是websocket let websocket new websocket(ws://127.0.0.1:8080/test) ; ​ // 给 websocket 创建几个 回调函数 ; websocket.onopen function(){ // 连接建立成功后, 自动调用 ; console.log(连接建立成功); } ​ websocket.onmessage function(e){ // 收到消息后 ,调用 // 这里的 e 参数 , 就是 收到的消息 ; console.log(收到消息e.data); } ​ websocket.onerror function(){ // 链接发生异常时 ,调用 console.log(连接发生异常); } ​ websocket.onclose function(){ // 连接发生关闭后调用 console.log(连接断开了); } // 给上面的 发送按钮,添加一个 发送点击事件, 把消息发送出去; let sendButton document.querySelector(#send-button) ; let message document.querySelector(#text); sendButton.onclick function(){ // 发送消息 ,前面已经有 websocket , websocket 已经有服务器的信息, 可以直接通过它向服务器发送数据 ; // 客户端就不需要会话的概念了 , 只需要知道服务器就行,服务器才需要管理会话 ; websocket.send(message.value) ; } ​ ​ /script /body服务器-客户端交互

相关文章:

简单学习 --> WebSocket

websocketwebsocket 是应用层 协议, 基于传输层Tcp 协议 的协议 ;这个协议可以实现服务器主动给客户端推送信息功能(本身Tcp就可以做到,但是HTTP不行)websocket报文格式websocket 和服务器建立连接的过程首先 客户端 发送 HTTP请求 给服务器 , 请求里 包含了一些特殊header , (…...

OBS高级计时器插件:如何高效管理直播时间的完整指南

OBS高级计时器插件:如何高效管理直播时间的完整指南 【免费下载链接】obs-advanced-timer 项目地址: https://gitcode.com/gh_mirrors/ob/obs-advanced-timer OBS高级计时器插件是专为OBS Studio用户设计的专业时间管理工具,通过6种智能计时模式…...

5分钟永久激活Windows和Office:KMS智能激活终极指南

5分钟永久激活Windows和Office:KMS智能激活终极指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗?Office文档突然变成只读…...

【Amazon Quick 桌面 AI 助手初体验】把重复造轮子的活交给 Quick 大显身手

🪪 本文作者:许业宝 ✍️ 作者信息: 🌞 VSTECS云解决方案架构师 | AWS APN Ambassador | 🪪 AWS Community Builder | 亚马逊云科技技能云博主 | UGL ⭐ 已获得 AWS 认证大满贯(13 个…...

简单学习 --> Cookie 和Session

CookieCookie是 http请求 header 中的一个属性; (是浏览器 持久化存储数据的一种 机制) ;网页无法 访问 服务器的文件系统, 要存储数据就得使用其他方式 ;(Cookie 中保存的数据,也是 键值对格式(用户自定义的),最终也是要把这个键值对和请求一起发送回服务器的, 服务Cookie 会存…...

Midjourney提示词工程终极护城河:基于CLIP文本嵌入空间的向量对齐技术(附Python可视化调试工具)

更多请点击: https://intelliparadigm.com 第一章:Midjourney提示词工程终极护城河:基于CLIP文本嵌入空间的向量对齐技术(附Python可视化调试工具) 在生成式AI实践中,提示词质量差异常导致图像语义漂移——…...

C++ 条件变量 condition_variable

<condition_variable> 是 C 标准库中用于多线程同步的核心头文件。它主要提供了条件变量&#xff08;Condition Variable&#xff09;机制&#xff0c;用来协调多个线程的执行顺序。 简单来说&#xff0c;它的作用就是让一个或多个线程在特定条件不满足时进入休眠&#x…...

LangForce方法:强化VLA模型语言依赖,提升分布外泛化能力并保留语言核心功能

LangForce方法&#xff1a;强化VLA模型语言依赖&#xff0c;提升分布外泛化能力并保留语言核心功能当前VLA模型常依赖视觉线索而非语言指令&#xff0c;在新场景下表现不佳。论文提出的LangForce方法&#xff0c;通过引入对数似然比损失&#xff0c;强化模型对语言的依赖&#…...

【Twitter算法适配型Prompt库】:2024Q2官方推荐权重结构解析+ChatGPT生成内容通过率提升67%的12个黄金句式

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Twitter算法适配型Prompt库的演进逻辑与2024Q2权重变革本质 算法信号层重构驱动Prompt范式迁移 2024年第二季度&#xff0c;X&#xff08;原Twitter&#xff09;平台正式将Engagement Velocity Ratio&…...

1.8.2 掌握Scala类与对象 - 单例对象与伴生对象

本次实战通过三个案例深入解析了 Scala 中 object 的核心机制&#xff0c;展示了其如何替代 Java 的 static 关键字。首先&#xff0c;通过 MathUtils 定义了存放常量与工具方法的独立单例对象&#xff1b;其次&#xff0c;利用 Person 类与其同名对象演示了“伴生对象”特性&a…...

客户总问案件进度?知识产权自助查询系统让咨询量直降 80%

做知产代理的伙伴一定深有体会&#xff1a;客服每天大半时间都在回复 **“案件到哪一步了&#xff1f;”“历史文件发我一下”“去年委托的案子状态是什么”**&#xff1b;找历史文档要翻遍聊天记录、文件夹&#xff0c;耗时又尴尬&#xff1b;高频次沟通占用大量人力&#xff…...

Python 爬虫进阶技巧:请求头 UA 随机伪装绕过基础检测

前言 当下绝大多数网站均部署了基础反爬检测机制,服务器会优先校验客户端请求身份标识,未携带合法浏览器标识、使用默认程序请求载体的爬虫请求,极易被直接拦截、封禁 IP、返回空数据或跳转拦截页面。爬虫默认发起请求时会自带程序原生 UA 标识,服务器可通过该标识直接识别…...

1.8.1 掌握Scala类与对象 - Scala类

本次实战通过两组对比鲜明的案例&#xff0c;带你快速入门Scala面向对象编程的核心。首先&#xff0c;通过创建User类&#xff0c;我们掌握了Scala普通类的定义方式&#xff0c;了解了如何使用private修饰符封装成员变量&#xff0c;以及如何通过new关键字实例化对象并调用其公…...

别再只会用ActivePart了!CATIA二次开发中,如何用C#递归遍历任意复杂结构树?

CATIA二次开发进阶&#xff1a;用C#递归算法征服任意复杂装配树 在CATIA二次开发领域&#xff0c;ActivePart就像新手司机的自动挡——简单易用却限制重重。当面对包含数百个零件的飞机发动机装配体&#xff0c;或是横跨多个产品的汽车底盘系统时&#xff0c;仅能操作当前激活零…...

2026AI大模型接口聚合站榜单揭晓!这些平台助你一站式解决模型调用难题

跨国网络延迟、复杂的支付方式以及分散的接口协议&#xff0c;常常让开发者在调用AI大模型API时体验不佳。而AI大模型接口聚合站就像一个智能中转平台&#xff0c;能让调用AI大模型API变得像调用本地服务一样简单。通过API聚合站&#xff0c;开发者可以一站式解决国内外主流AI模…...

在线音视频处理工具实测对比:视频压缩、格式转换、音频提取哪家强?

一、为什么要关注在线音视频工具&#xff1f;先看一组数据。根据多家市场研究机构的报告&#xff0c;全球视频处理相关市场规模近年来持续增长&#xff0c;视频内容的生产量每年都在翻倍。各大平台每天新增的视频播放时长以亿计——这意味着越来越多的普通用户和创作者&#xf…...

终极指南:用ContextMenuManager彻底解决Windows右键菜单混乱问题

终极指南&#xff1a;用ContextMenuManager彻底解决Windows右键菜单混乱问题 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾因Windows右键菜单过于臃肿…...

在VS Code中结合Taotoken实现稳定的AI编程辅助体验

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在VS Code中结合Taotoken实现稳定的AI编程辅助体验 对于日常使用VS Code进行开发的程序员而言&#xff0c;一个稳定、不间断的AI编…...

Angular 17与Firebase全栈实战:从零构建现代化Web应用

1. 项目概述&#xff1a;一个基于 Angular 17 的现代化 Web 应用最近接手并重构了一个名为 Ditectrev 的 Web 项目&#xff0c;它本质上是一个功能性的前端应用&#xff0c;旨在解决特定领域的信息展示与交互需求。这个项目最初由 Angular CLI 17.3.17 生成&#xff0c;但原始的…...

香港科技大学(广州)的研究者如何让AI记忆力翻倍

这项由香港科技大学&#xff08;广州&#xff09;主导的研究成果发表于2026年第43届国际机器学习大会&#xff08;ICML 2026&#xff09;&#xff0c;会议地点为韩国首尔&#xff0c;论文收录于PMLR第306卷。论文预印本编号为arXiv:2605.05838&#xff0c;有兴趣深入了解的读者…...

【粉丝福利社】三维重建技术与实践:基于NeRF与3DGS

&#x1f48e;【行业认证权威头衔】 ✔ 华为云天团核心成员&#xff1a;特约编辑/云享专家/开发者专家/产品云测专家 ✔ 开发者社区全满贯&#xff1a;CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主 ✔ 技术生态共建先锋&am…...

苹果与伊利诺伊大学:四步AI绘图实现媲美五十步生成质量能力提升

这项由苹果公司&#xff08;Apple&#xff09;与伊利诺伊大学香槟分校&#xff08;UIUC&#xff09;联合开展的研究&#xff0c;于2026年5月以预印本形式发布在arXiv平台&#xff0c;论文编号为arXiv:2605.08078。研究提出了一种名为"正则化轨迹模型"&#xff08;Nor…...

多Agent协作是趋势,但谁来管这些Agent

如果你最近参加过AI相关的技术沙龙或者行业峰会&#xff0c;大概率会听到一个词&#xff1a;多Agent协作。简单说就是&#xff0c;不是一个AI帮你干完所有事&#xff0c;而是多个AI各司其职、互相配合。比如一个Agent负责理解需求&#xff0c;一个Agent负责写代码&#xff0c;一…...

设计器模版底图,一直渲染错误,是因为第一张图变形后内存中图片数据被改了,其他尺码一直错误

这其实是你们现在更需要的组合&#xff1a;不是只看 decode()&#xff0c;而是再确认“这次 decode 对应的还是当前这张图”。再确认“这次 decode 对应的还是当前这张图” 是怎么做到的&#xff0c;详细列举代码我直接从现在这次改动的代码里&#xff0c;把"确认图片身份…...

3分钟掌握RPG Maker资源解密:纯前端工具轻松破解加密文件

3分钟掌握RPG Maker资源解密&#xff1a;纯前端工具轻松破解加密文件 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https://gitc…...

本地部署9B代码智能体:基于vLLM与CoPaw-Flash的实践与深度评估

1. 项目概述&#xff1a;在本地部署与评估一个9B参数的代码智能体最近在折腾一个挺有意思的项目&#xff0c;尝试在单张NVIDIA H100 GPU上&#xff0c;部署并评估一个名为CoPaw-Flash-9B的本地代码智能体。这个模型基于Qwen3.5-9B微调而来&#xff0c;专门针对自主智能体任务进…...

Multi-Agent 落地常见问题:数据质量、模型适配与业务对齐解决方案

Multi-Agent 落地常见问题:数据质量、模型适配与业务对齐解决方案 引言 痛点引入:从「演示天堂」到「生产地狱」的Multi-Agent鸿沟 2023年11月OpenAI DevDay发布的GPT-4o Assistants API、LangChain团队迭代的LangGraph 1.0、Microsoft Research推出的AutoGen Studio 2.0,…...

BilibiliVideoDownload跨平台视频下载工具:从安装到高级配置的完整指南

BilibiliVideoDownload跨平台视频下载工具&#xff1a;从安装到高级配置的完整指南 【免费下载链接】BilibiliVideoDownload Cross-platform download bilibili video desktop software, support windows, macOS, Linux 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibil…...

全栈开发新范式:Vibe-Stack集成技术栈实战解析

1. 项目概述与核心价值 最近在探索全栈开发的新范式时&#xff0c;我注意到了 pastropsucez/vibe-stack 这个项目。乍一看这个名字&#xff0c;你可能会觉得有点“玄学”&#xff0c;但深入探究后&#xff0c;我发现它其实是一个高度集成、开箱即用的现代Web应用开发栈。简单…...

如何让老旧安卓电视焕发新生:mytv-android实现流畅播放体验的完整指南

如何让老旧安卓电视焕发新生&#xff1a;mytv-android实现流畅播放体验的完整指南 【免费下载链接】mytv-android 使用Android原生开发的视频播放软件 项目地址: https://gitcode.com/gh_mirrors/my/mytv-android 你是否还在为家中那台反应迟钝、启动缓慢的旧电视而烦恼…...