gpt4 book ai didi

websocket - 如何调试 websocket 服务器

转载 作者:行者123 更新时间:2023-12-02 19:09:14 24 4
gpt4 key购买 nike

我正在尝试编写一个用于 webSocket 连接的服务器。我仔细阅读了规范(76,而不是 75)。我使用雷区作为浏览器。

当我尝试在浏览器中从 javascript 创建 WebSocket 时:

var ws = new WebSocket("ws://localhost:8766/hoho");

浏览器响应

“Firefox 无法与位于 ws://localhost:8766/hoho 的服务器建立连接。”

我的服务器正在获取有效的客户端握手请求,它发回响应,然后繁荣。

我已经运行了我可以通过服务器找到的每个握手示例,并且在每个实例中都与给定的响应完全匹配。我非常有信心返回的字节流是正确的。我不需要帮助调试我的代码,它正在按照我的意思去做。我需要帮助调试握手协议(protocol)的使用,因为当我给雷区我认为是正确的响应时,它会 mock 我。

我的问题是:我该如何调试这个东西?我能想到两种可能性。

  1. 有没有办法让雷区告诉我为什么它拒绝我的握手?

  2. 网络上是否有可用的、公共(public)的 webSocket 服务器服务?如果有,我可以代理它,观察两个方向的字节流并找出我的不同之处。

有人对这些方向有任何想法或任何其他想法吗?

感谢您的帮助。

最佳答案

我正在调试类似的情况,我最依赖的工具是netcat,另外还使用了一些openssl。关闭您的 websocket 服务器并运行 nc -l 8766 。这可以让您准确记录正在发送的 header 。重新打开 websocket 服务器并使用 nc 8766 粘贴这些相同的 header 并查看结果。 openssl s_client -connect localhost:443 将允许您使用 ssl 发出请求(如果您的组合中包含该请求)。

从那里,确保响应完全符合 websocket 握手协议(protocol)。例如,我现在的问题是我的响应有 Connection: close,这不好。

关于websocket - 如何调试 websocket 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3168206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com