gpt4 book ai didi

bash - 如何使用 netcat/socat/telnet 手动连接到 websocket?

转载 作者:行者123 更新时间:2023-11-29 08:45:22 29 4
gpt4 key购买 nike

我正在尝试连接到 reference websocket echo server “手动”,以了解协议(protocol)的工作原理(我为此使用 socat)。然而,服务器总是在不提供答案的情况下关闭连接。知道为什么吗?

这是我的做法:

socat - TCP:echo.websocket.org:80

然后,我将以下文本粘贴到终端中:

GET /?encoding=text HTTP/1.1
Origin: http://www.websocket.org
Connection: Upgrade
Host: echo.websocket.org
Sec-WebSocket-Key: P7Kp2hTLNRPFMGLxPV47eQ==
Upgrade: websocket
Sec-WebSocket-Version: 13

我在同一台机器上的 Firefox 中嗅探了与开发人员工具的连接参数,它完美地工作:因此,我认为它们是正确的。但是在那之后,服务器会立即关闭连接,而不提供答案。为什么?如何“手动”实现协议(protocol)?

我想在我的终端中进行类型测试并让服务器回复我输入的内容(它在网络浏览器中工作)。

最佳答案

我认为您想修改套接字流以将 \n(换行)转换为 CRLF(回车和换行)。执行 info socat 会生成包含此修饰符的详细信息:

crnl   Converts the default line termination character NL ('\n',  0x0a)
to/from CRNL ("\r\n", 0x0d0a) when writing/reading on this chan-
nel (example). Note: socat simply strips all CR characters.

所以我认为你应该能够做到这一点:

socat - TCP:echo.websocket.org:80,crnl

关于bash - 如何使用 netcat/socat/telnet 手动连接到 websocket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26507959/

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