我如何不使用Python之类的编程语言直接与WebSockets服务器通信?

我如何不使用Python之类的编程语言直接与WebSockets服务器通信?,websocket,Websocket,我希望使用WebSockets连接到服务器,但不希望在Python这样的复杂环境中反复通过网络发送小块数据(这不是一台速度很快的计算机,Python有时需要一到两分钟的时间来初始化) 这就是说,WebSockets是一个非常复杂的协议——它包含了透明的乒乓球、帧和其他(公认非常棒的)功能——需要相当长的时间才能实现足够多的协议,从零开始创建一个可用的客户机 我正在寻找一种可以打开套接字、处理底层协议并让我只处理需要发送的数据的东西,有点像“websocket netcat” (上下文:我需要从命

我希望使用WebSockets连接到服务器,但不希望在Python这样的复杂环境中反复通过网络发送小块数据(这不是一台速度很快的计算机,Python有时需要一到两分钟的时间来初始化)

这就是说,WebSockets是一个非常复杂的协议——它包含了透明的乒乓球、帧和其他(公认非常棒的)功能——需要相当长的时间才能实现足够多的协议,从零开始创建一个可用的客户机

我正在寻找一种可以打开套接字、处理底层协议并让我只处理需要发送的数据的东西,有点像“websocket netcat”

(上下文:我需要从命令行与Chrome的基于WebSocket的远程调试服务器通话。)

编辑:到目前为止我已经找到了;就协议而言,这必须是开始使用cURL处理HTTP keepalives等的最简单方法(cURL本身还不会说WebSockets),但出于某种原因,Chrome根本没有响应该程序的指令。我已经设法让它通过WireShark向Chrome远程调试器发送相同的头,但它仍然发送不同格式的数据

Chrome的调试器的请求头以
81 ac 99 2f fa 22 e2 0d 97….
开头,而C程序发送
81 1f 7b 22 69 64 22 3a 31….
81
至少是相同的!:我想我现在得去学习二进制WebSocket协议了

我通过网络发送的实际JSON命令是
{“id”:1,“method”:“Page.reload”}
,根据(我的想法来源)并通过确认为正确的命令


有人吗P

库在发送数据后立即关闭连接,这就是您没有收到任何答复的原因。工作时不要调用函数

curl\u easy\u cleanup
,因为它会关闭连接

我正在寻找一种可以打开套接字、处理底层协议并让我只处理需要发送的数据的东西,有点像“websocket netcat”

我的新工具被明确宣传为“websocket netcat”

nc-e
也支持模拟:您可以启动您的程序,它将通过stdin/stdout连接到WebSocket

使用Chrome调试端口的示例:

chromium --remote-debugging-port=9222&
ws=`curl -sg http://127.0.0.1:9222/json/new | grep webSocketDebuggerUrl | cut -d'"' -f4 | head -1`
echo '{"id":2,"method":"Page.navigate","params":{"url":"https://example.com"}}'  | websocat -n1 $ws

报头只有两个字节,第二个字节(ac和1f)包含有关有效负载大小的信息,因此它会受到所发送消息的影响