WebSocket是一种基于单个TCP连接的全双工通信协议,支持浏览器与服务器持续连接并互相主动发消息,适用于聊天、实时通知等场景;其通过HTTP Upgrade握手建立长连接,区别于HTTP的请求-响应模式;前端使用new WebSocket()创建连接,监听open、message、close、error事件,并用send()发送数据;后端需配套WebSocket服务(如Node.js的ws库、Python的websockets等)来处理连接管理、广播与鉴权。

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它让浏览器和服务器之间可以**持续保持连接、互相主动发消息**,不像传统 HTTP 那样每次请求都要重新握手。这是实现实时通信(比如聊天、协作编辑、实时通知)最常用、最直接的方式。
HTTP 是“请求-响应”模型:浏览器发一次请求,服务器回一次响应,连接就断了。想获取新数据?只能不断轮询(定时发请求),效率低、延迟高、浪费资源。
WebSocket 是“长连接”模型:客户端和服务器只在建立连接时走一次 HTTP 升级(Upgrade)握手,之后就切换到 WebSocket 协议,双方随时可发消息,没有请求/响应的束缚。
浏览器原生支持 WebSocket 构造函数,使用非常简洁:
立即学习“Java免费学习笔记(深入)”;
假设后端 WebSocket 服务运行在 ws://localhost:8080:
const ws = new WebSocket('ws://localhost:8080');
ws.onopen = () => {
console.log('已连接');
ws.send(JSON.stringify({ type: 'login', user: 'Alice' }));
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('收到消息:', data);
};
ws.onclose = () => console.log('连接已关闭');
ws.onerror = (err) => console.error('连接出错:', err);
前端只是半边腿。WebSocket 要真正工作,必须有支持 WebSocket 协议的服务端,比如:
服务端要处理连接管理、广播、鉴权、心跳保活等——这些前端不用管,但开发前得确认后端已准备好对应接口和路径。
基本上就这些。WebSocket 本身不复杂,但容易忽略连接状态管理、错误重试和消息序列化细节。先跑通连接和收发字符串,再逐步加业务逻辑,就很稳了。
以上就是如何用javascript实现实时通信_WebSocket基础是什么?的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号