You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在浏览器地址栏直接输入WebSocket地址连接ESP32服务器?

问题解答

核心结论

不能直接在浏览器地址栏输入ws://192.168.1.2/socketserver来建立与ESP32的WebSocket连接。

原因说明

浏览器地址栏默认仅支持解析HTTP/HTTPS协议的地址,输入ws://开头的地址后,浏览器会将其当作普通HTTP请求处理,无法触发WebSocket所需的特殊握手流程(需要客户端发送包含Upgrade: websocket等字段的请求头),因此无法建立连接。而你能直接用http://地址成功,是因为地址栏输入本质就是发送HTTP GET请求,符合HTTP服务器的处理逻辑。

代码修正提示

你提供的代码中有一处拼写错误,会导致WebSocket功能无法正常工作:

  • 错误写法:AsynWebSocket wsInput("/socketserver");
  • 正确写法:AsyncWebSocket wsInput("/socketserver");(缺少字母c,需修正为AsyncWebSocket)

测试WebSocket连接的可行方法

  • 浏览器控制台测试:打开浏览器开发者工具的Console面板,执行以下JS代码手动建立连接:
const ws = new WebSocket('ws://192.168.1.2/socketserver');
// 连接成功时触发
ws.onopen = () => {
    console.log('WebSocket连接成功');
    ws.send('测试消息'); // 发送测试内容
};
// 收到服务器消息时触发
ws.onmessage = (event) => {
    console.log('收到服务器消息:', event.data);
};
// 连接出错时触发
ws.onerror = (error) => {
    console.error('WebSocket连接错误:', error);
};
// 连接关闭时触发
ws.onclose = () => {
    console.log('WebSocket连接关闭');
};
  • 专用工具测试:使用WebSocket测试工具(比如浏览器扩展「Simple WebSocket Client」、桌面工具「wscat」等),输入ws://192.168.1.2/socketserver即可快速测试连接和收发消息。

内容的提问来源于stack exchange,提问作者Ray25

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 03:50:01