【问题标题】:I want to check "Sec-WebSocket-Accept" in client side我想在客户端检查“Sec-WebSocket-Accept”
【发布时间】:2012-03-17 17:13:44
【问题描述】:

我正在制作 websocket 的 C 服务器:D 实际上有一次我确实连接成功,但在那之后, 这个 onOpen 没有再次触发......并告诉我

Error during WebSocket handshake: Sec-WebSocket-Accept mismatch

所以现在我需要检查客户端 HTML 需要什么,尤其是 Sec-WebSocket-Accept 字段

有没有办法在javascript客户端检查Sec-WebSocket-Accept字段? 我应该检查什么值?

【问题讨论】:

    标签: html websocket handshake


    【解决方案1】:

    在初始打开握手期间预期由 WebSocket 服务器发送的 Sec-WebSocket-Accept 标头无法从 JavaScript(在浏览器中)访问。

    但是,您可以查看完整的打开握手,即在 Chrome 的开发者控制台中,握手成功。

    该值必须由服务器根据客户端发送的 Sec-WebSocket-Key(和一个魔术字符串)计算得出。详情可以阅读https://www.rfc-editor.org/rfc/rfc6455

    【讨论】:

    • 非常感谢您的回复!!!它对我很有帮助,现在我已经完成了 C 服务器的制作!!!虽然只能握手^^;现在我正在研究数据框看起来比握手更难;;;
    • 在 Chrome 控制台中查看握手和(特别是)消息读取将非常有用。你能告诉我在哪里可以找到它们吗?我在控制台选项卡中看不到任何内容;我应该在不同的标签下查看吗?
    • 您可以像这样(在 Chrome 中)查看来自 WS 打开握手的数据:F12 -> 网络选项卡 -> 重新加载页面 -> websocket 子选项卡(底部)-> 单击路径(左窗格)。您不能(据我所知)自动“窃听”在 Chrome 中握手 之后交换的 WS 消息。可能有一个 Wireshark 的解剖器可以允许这样做。
    • 谢谢。可惜没有办法捕获所有 ws 流量。
    • 抱歉回复晚了^^;
    猜你喜欢
    • 2016-06-28
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多