这个 HTTPS 页面能连 ws://localhost 吗?
Chrome 允许本地网络访问后可以 取决于浏览器(截至 2026 年 10 月)。Chrome 147 起会先询问是否允许本页访问本地网络上的设备,选「允许」后可以连 ws://localhost 和写成 IP 的局域网 ws:// 地址;Firefox 能直接连 localhost,但会拦截局域网地址;Safari 会拦截从 HTTPS 页面发起的 ws:// 连接。
WebSocket 在线测试:二进制按 HEX 显示、可发 HEX/Base64 字节;Chrome 147+ 允许本地网络访问后可测 localhost 和局域网 IP;断开显示关闭码与排查清单。消息不经过我们的服务器。
收发的消息显示在这里。点「连接」之前,工具不会发起任何 WebSocket 连接。
这是按间隔发送一条普通文本消息,不是 WebSocket 协议层的 ping 帧——网页无法发送也看不到 ping/pong 帧。默认关闭,因为不认识这条消息的服务器可能会断开连接。
由 Go Tools 工程团队构建并验证。
Chrome 允许本地网络访问后可以 取决于浏览器(截至 2026 年 10 月)。Chrome 147 起会先询问是否允许本页访问本地网络上的设备,选「允许」后可以连 ws://localhost 和写成 IP 的局域网 ws:// 地址;Firefox 能直接连 localhost,但会拦截局域网地址;Safari 会拦截从 HTTPS 页面发起的 ws:// 连接。
浏览器不告诉网页原因 握手失败时,浏览器按规范只告诉网页「出错 + 关闭码 1006」,不提供 HTTP 状态码和原因。按 F12 打开控制台,Chrome 和 Edge 会显示服务器返回的状态码。
浏览器不能设置请求头 不能。浏览器的 WebSocket API 没有设置请求头的接口。可以把 token 放在 URL 参数、子协议或 Cookie 里,具体看服务器支持哪种。
是一条普通消息 不是。网页无法发送也看不到协议层的 ping/pong 帧,服务器发来的 ping 由浏览器自动回复。这里的定时发送是按间隔发一条普通文本消息,默认关闭。
选 Socket.IO 预设 Socket.IO 不是原生 WebSocket。选「Socket.IO v3/v4」预设:它会连 /socket.io/?EIO=4&transport=websocket,收到 open 包后回复 40,每收到 ping(2)就回 pong(3)。
WebSocket 在线测试工具就是一个网页版的 WebSocket 客户端:填入 ws:// 或 wss:// 地址,连接服务器,收发文本或二进制消息,看服务器回了什么。后端接口刚写好、Nginx 反代刚配完、设备只提供 WebSocket 接口时,不用写客户端代码,打开网页就能做 ws 在线测试。
本工具在你的浏览器里运行:连接由浏览器直接发往你填写的服务器,消息不经过 go-tools 的服务器。同时它也受浏览器限制:不能加自定义请求头,不能发协议层的 ping 帧,握手失败时浏览器只告诉网页关闭码 1006,不告诉原因。
和直接在浏览器控制台里 new WebSocket() 相比,它多做了这些:二进制消息按 HEX(或 Base64)显示,HEX / Base64 输入按真正的二进制消息发出;JSON 自动格式化;关闭码给出含义;连接失败时列出排查清单;地址可能被浏览器拦截时,连接前就提示;实测每秒约 2,000 条消息时日志依然流畅。
09:30:01.204 · Connecting to ws://localhost:8080/ws
09:30:01.219 · Connected · subprotocol: chat
09:30:02.517 → TXT 17 B {"type":"hello"}
09:30:02.531 ← TXT 25 B {"type":"hello","ok":true}
09:30:03.002 → BIN 4 B 48 69 00 FF
09:30:03.010 ← BIN 4 B 48 69 00 FF
09:30:09.880 · Closed · code 4001: application-defined code 连接前先检查地址:从本 HTTPS 页面连写成域名的 ws://(不加密)会被浏览器拦截,工具会直接提示并建议改用 wss://。连 localhost 或局域网 IP 时,提示 Chrome 会询问「访问本地网络」权限,以及 Firefox、Safari 的不同表现(截至 2026 年 10 月)。
收到的二进制消息按 HEX 显示(每行 16 字节),也可切换成 Base64。输入 48 69 00 FF、0x48,0x69 或 Base64,发出的是二进制消息;非法字符、位数为奇数都会指出位置,发送前的字节预览就是实际发出的内容。
每次关闭都显示关闭码、原因文字、是否完成关闭握手;标准码 1000–1015 给出含义,4000–4999 标明是应用自定义码。连接在建立前就失败时,给出排查清单,而不是凭猜测下结论。
消息每帧合并渲染一次,实测每秒约 2,000 条也不卡页面。每条记录方向、毫秒时间戳、类型和字节数。可按方向过滤、搜索、暂停显示、只保留最近 N 条,复制或导出为文本。
可请求一个或多个子协议(逗号分隔),连上后显示服务器确认了哪一个。连接超时会结束服务器一直不回应的握手。Socket.IO 预设自动完成 Engine.IO v4 握手并回应 ping。
定时发送按间隔重复发一条你设定的消息;自动重连在意外断开后按指数退避重试。两项默认关闭,工具不会发送任何你没要求发的消息。
ws://localhost:8080/ws
已连接
→ TXT 17 B {"type":"hello"}
← TXT 25 B {"type":"hello","ok":true} Chrome 147 起会先询问是否允许访问本地网络,选「允许」即可;Firefox 能直接连 localhost;Safari 会拦截从本 HTTPS 页面发起的 ws:// 连接(截至 2026 年 10 月)。
48 69 00 FF
→ BIN 4 B 48 69 00 FF
HEX 模式下发出的是这 4 个字节组成的二进制消息,而不是「48 69 00 FF」这串文字。Base64 输入 SGkA/w== 发出的是同样的 4 个字节。
服务器以关闭码 4001、原因「token expired」关闭连接
已关闭 · 关闭码 4001:应用自定义的关闭码 · 正常完成关闭握手 原因:token expired
4000–4999 由应用自己定义,4001 的含义要查服务端文档;1000–1015 是标准关闭码,日志里会直接给出含义。
协议选 Socket.IO v3/v4,地址 ws://localhost:3000
正在连接 ws://localhost:3000/socket.io/?EIO=4&transport=websocket
← 0{"sid":"…","pingInterval":25000,…}
→ 40
← 40{"sid":"…"} 预设会补全 Socket.IO 的路径和参数,回复 40 加入默认命名空间,每收到 2 就回 3。发送事件写成 42["event","data"]。
输入或粘贴 ws:// 或 wss:// 地址;http:// 和 https:// 会按 ws:// 和 wss:// 处理。留意地址下方的提示:浏览器可能拦截时会提前说明。
有的服务器要求子协议,例如 mqtt。可以填一个或多个,用逗号分隔;连上后日志会显示服务器确认了哪一个。
在 Chrome 里连 localhost 或局域网地址时,弹出「访问本地网络」询问请选「允许」。连接失败时按出现的排查清单逐项检查。
选择文本、HEX 或 Base64,确认预览后按 Ctrl+Enter 发送。收到的 JSON 自动格式化,二进制按 HEX 显示,可在日志工具栏切换为 Base64。
按方向过滤或搜索日志,消息刷屏时可暂停显示;最后把日志复制或导出为文本,带时间戳、方向和字节数。
浏览器会拦截 HTTPS 页面发起的、写成域名的不加密 ws:// 连接(混合内容)。Chrome 和 Firefox 会直接报 SecurityError。请改用 wss://;在 Chrome 里连局域网服务器,可以把地址写成 IP(需允许访问本地网络)。
ws://api.example.com/ws
wss://api.example.com/ws
文本模式下,48 69 发出的是「4、8、空格、6、9」五个字符。要发送 0x48 0x69 两个字节的二进制消息,请切到 HEX 模式。
文本模式:48 69 → TXT 5 B
HEX 模式:48 69 → BIN 2 B
Socket.IO 服务会拒绝根路径上的原生 WebSocket 连接;不回应它的握手和 ping,它也会断开连接。请使用 Socket.IO 预设。
ws://localhost:3000
ws://localhost:3000/socket.io/?EIO=4&transport=websocket
浏览器发起 WebSocket 握手时不能带 Authorization 头。如果服务器支持,改用 URL 参数或子协议传 token。
Authorization: Bearer eyJ…
wss://api.example.com/ws?token=eyJ…
网络与 API
在浏览器中构建 curl 命令——设置请求方法、请求头、认证与请求体,即刻获得可复制的命令。支持 Bearer、POST JSON、文件上传预设。免费、隐私安全、无需注册。
网络与 API
在线生成 htpasswd 条目,支持 bcrypt、Apache MD5 (apr1)、SHA-1 等算法,并输出 Apache、nginx 和 Docker 的即用配置。100% 在浏览器中运行,密码不上传。
网络与 API
生成 Open Graph、Twitter Card 与 SEO meta 标签,并实时预览在 Google、Facebook、X 上的分享效果。100% 免费、纯浏览器运行、无需注册——一键复制代码即可粘贴使用。
网络与 API
看清哪个 nginx location 块生效,其他块各自输在哪一步。免费在线 location 匹配规则与优先级测试器,支持 =、^~、~、~*,全程浏览器内运行。
网络与 API
免费免安装的串口调试助手在线版:GBK 中文自动识别、一键切换不乱码,HEX 收发自动加 Modbus CRC16,发送前预览每个字节。电脑版 Chrome、Edge 直连 CH340、CP2102、ESP32、Arduino,没有硬件也能用演示设备试。
网络与 API
输入 IP 或网段即可算出网络地址、广播地址、可用主机数、子网掩码与反掩码,还能拆分子网、复制 Cisco/华为配置。免费无需注册,浏览器本地运算不上传。