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

广东省省的建设厅官方网站asp技校网站

广东省省的建设厅官方网站,asp技校网站,网站系统怎么用,网页传奇平台浏览器和服务器之间的通信更便利,比http的轮询等效率提高很多, WebSocket并不是权限的协议,而是利用http协议来建立连接 websocket必须由浏览器发起请求,协议是一个标准的http请求,格式如下 GET ws://example.com:3…

浏览器和服务器之间的通信更便利,比http的轮询等效率提高很多,

WebSocket并不是权限的协议,而是利用http协议来建立连接

websocket必须由浏览器发起请求,协议是一个标准的http请求,格式如下

GET ws://example.com:3000/chat HTTP/1.1
Host: example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
Origin: https://example.com:3000

关键字段解释:‌

‌Upgrade: websocket‌:表示客户端希望升级到 WebSocket 协议。
‌Connection: Upgrade‌:确认协议升级。
‌Sec-WebSocket-Key‌:一个 Base64 编码的随机值(16字节),用于握手验证。
‌Sec-WebSocket-Version‌:指定 WebSocket 协议版本(通常为 13)。
‌Origin‌(可选):用于跨域控制,服务器可据此决定是否允许连接。

服务器响应(Server Handshake Response)‌
服务器返回 ‌HTTP 101 Switching Protocols‌ 状态码,确认协议升级:

Copy Code
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=



‌关键字段解释:‌

‌Sec-WebSocket-Accept‌:服务器将客户端的 Sec-WebSocket-Key 与固定 GUID 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 拼接后,进行 SHA-1 哈希并 Base64 编码,返回此值供客户端验证。

握手成功后,通信将脱离 HTTP,转为基于帧的 WebSocket 协议。

为什么websocket连接可以实现双工通信,而http不可以呢?实际上上,http是建立在tcp之上的,tcp本身就实现了双工通信,但http协议的请求--应答机制限制了全双工通信。websocket连接建立以后,其实只是简单规定了一下:咱们接下来的通信就不使用http了,咱们直接互发数据吧。

安全的websocket连接机制和https类似,首先,浏览器用wss://创建websocket连接,会先通过https创建安全连接,然后,该https升级为websocket连接,底层通信仍然走的是安全的SSL/TLS

uniapp使用websocket,需实现心跳‌:防止因网络空闲导致连接断开

let timer;
const socketTask = uni.connectSocket({ url: 'wss://example.com' });socketTask.onOpen(() => {timer = setInterval(() => {socketTask.send({ data: 'ping' });}, 30000);
});socketTask.onClose(() => {clearInterval(timer);
});

 Node.js 服务端设置 WebSocket 跨域:(关键在于 ‌握手阶段对 Origin 头的验证)

const WebSocket = require('ws');// 允许的 Origin 白名单
const allowedOrigins = ['https://your-frontend-domain.com','http://localhost:3000'
];const wss = new WebSocket.Server({port: 8080,verifyClient: (info) => {const origin = info.origin || info.req.headers.origin;if (!allowedOrigins.includes(origin)) {console.log(`拒绝来自 ${origin} 的跨域请求`);return false; // 阻止握手}return true; // 允许连接}
});wss.on('connection', (ws) => {console.log('客户端已连接');
});

http://www.dtcms.com/wzjs/805940.html

相关文章:

  • 有了域名就可以做网站了吗哪项属于网页制作工具
  • 鹤壁做网站的联系方法wordpress 主题不显示
  • 成都大丰网站建设例表网平台戚里带崇墉炊金馔玉待鸣钟
  • 设计网站需要的知识北京自适应网站建设
  • 银川市建设工程质量监督站网站建设部网站注册中心
  • 微网站定制东莞网站制作及推广价格
  • 马鞍山网站建设推广网页制作详细教程
  • 如何做360网站的排名自己开个公司做网站
  • 郑州专业高校网站建设公司山东住房和城乡建设厅网站登陆
  • 毕业设计做网站好做吗深圳网站平台建设
  • 一个网站的建设流程有哪些广告制作技术培训
  • 寻找聊城做网站的公司附近推广用哪些软件
  • 门户网站自查整改情况报告页面跳转代码
  • 手机网站的视频怎么才能下载上海公司网站建设多少钱
  • 中山市住房建设局网站图片外链在线生成
  • 网站站长是什么意思企业中英文网站开发
  • 怎么能创建自己的网站企业咨询合同
  • 天津网站制作公司哪家好php用户管理系统
  • 初中生可做兼职的网站做网站收入怎样
  • 网上做的好金融网站怎么做网页公证
  • 硬盘做网站空间织梦网站怎么重新安装
  • 深圳网站建设电话合肥网站排名提升
  • 如何增加网站的外链在哪些网站上发外链好
  • 十大招聘网站排行榜更换wordpress后台登陆地址
  • 郑州响应式网站设计网站上做网上支付功能
  • 免费发布信息网有哪些网站创造一个app要多少钱
  • 建设银行员工网站网站建设全流程
  • 郴州网站建设哪个好公司网站建设行为规定
  • 大学生做企业网站广西网站建设开发
  • 网站内链分析青海省住房和城乡建设网站