浏览器 WebSocket 构造函数只接受地址和可选子协议,不能像通用 HTTP 客户端那样添加 Authorization 请求头。开始前先确认你的服务明确支持哪一种浏览器鉴权流程。
从服务文档确认鉴权位置
记录鉴权发生在握手前还是 OPEN 后。若服务只接受任意自定义 Authorization 握手头,当前浏览器工具无法模拟;应使用服务支持的客户端或调整服务端浏览器接入方案。
握手前:受浏览器策略约束的 Cookie / 服务明确规定的短期票据
握手中:服务规定的子协议协商
OPEN 后:服务规定的认证消息单独验证子协议
仅当测试服务支持 chat.v1 时,在“子协议”中填这个名字并连接。预期协商结果与服务约定一致;不要把完整请求头或 Bearer token 填入此栏。多个名字用逗号分隔,且不能重复。
chat.v1确认来源与 Cookie 条件
查看服务端收到的 Origin 和鉴权判断。目标服务自己的 Cookie 是否附带,取决于 Cookie 属性和浏览器策略;在目标网站登录成功,不代表从 ParseNest 发起的连接一定获得相同会话。
只按契约发送首条认证消息
如果服务明确约定下列 JSON 协议,OPEN 后才发送替换了测试票据的消息,并等待服务规定的确认事件。这个结构只是演示,不是 WebSocket 通用认证格式;没有该约定时不要照搬。
{"type":"authenticate","ticket":"REPLACE_WITH_TEST_TICKET"}区分认证失败和订阅未完成
OPEN 只说明连接建立。若服务要求认证后再订阅,收到认证确认后仍要按契约发送订阅消息;连接没有业务消息不一定是认证失败。记录服务返回的错误码或关闭原因,避免只根据沉默猜测。
测试票据与导出日志
优先使用作用域受限、短期有效的测试票据。不要把长期密钥放入 URL;工具保留的消息日志也可能包含你发送的认证消息,导出或分享前检查并脱敏。
浏览器与工具限制
测试工具由当前浏览器直连目标服务,需要你拥有可测试的 WSS 端点。它不代理连接、不提供任意握手请求头,也没有自动重连或自动心跳。URL 示例均是占位符;只有目标服务支持示例应用消息时,才能期待相应回应。
- 浏览器不能随意设置握手请求头。
- 子协议名不是任意请求头输入框。
- 消息认证必须符合目标服务的实际协议。