浏览器可以直接请求 websocket

一、原生支持

浏览器原生支持 WebSocket 协议,这使得开发者可以直接在 JavaScript 代码中使用 WebSocket 来建立与服务器的双向通信通道。

javascript 复制代码
const socket = new WebSocket("ws://localhost:8080");

socket.addEventListener("open", function (event) {

  console.log("WebSocket连接已打开");

  socket.send("你好,服务器!");

});

socket.addEventListener("message", function (event) {

  console.log("收到消息:", event.data);

});

socket.addEventListener("close", function (event) {

  console.log("WebSocket连接已关闭");

});

socket.addEventListener("error", function (event) {

  console.log("WebSocket出错:", event);

});

二、跨域考虑

不过,当 WebSocket 请求涉及跨域时,浏览器会进行安全检查。与传统的 HTTP 请求跨域类似,需要服务器正确配置跨域头信息(如`Access-Control-Allow-Origin`等)来允许跨域的 WebSocket 连接。否则,浏览器可能会阻止 WebSocket 握手,导致连接失败。

例如:如果服务器没有正确配置跨域策略,在浏览器控制台可能会看到类似"WebSocket handshake: Unexpected response code: 403"的错误信息,表示 WebSocket 握手过程中出现问题,服务器返回了禁止访问(403)的状态码。

相关推荐
可乐加.糖10 小时前
一篇关于Netty相关的梳理总结
java·后端·网络协议·netty·信息与通信
大丈夫立于天地间10 小时前
ISIS协议中的数据库同步
运维·网络·信息与通信
Dream Algorithm10 小时前
路由器的 WAN(广域网)口 和 LAN(局域网)口
网络·智能路由器
IT猿手11 小时前
基于CNN-LSTM的深度Q网络(Deep Q-Network,DQN)求解移动机器人路径规划,MATLAB代码
网络·cnn·lstm
吴盐煮_11 小时前
使用UDP建立连接,会存在什么问题?
网络·网络协议·udp
hyshhhh11 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
Hellc00712 小时前
轮询、WebSocket 和 SSE:实时通信技术全面指南(含C#实现)
网络
xujiangyan_12 小时前
nginx的反向代理和负载均衡
服务器·网络·nginx
GalaxyPokemon13 小时前
Muduo网络库实现 [十] - EventLoopThreadPool模块
linux·服务器·网络·c++