我如何不使用Python之类的编程语言直接与WebSockets服务器通信?
我希望使用WebSockets连接到服务器,但不希望在Python这样的复杂环境中反复通过网络发送小块数据(这不是一台速度很快的计算机,Python有时需要一到两分钟的时间来初始化) 这就是说,WebSockets是一个非常复杂的协议——它包含了透明的乒乓球、帧和其他(公认非常棒的)功能——需要相当长的时间才能实现足够多的协议,从零开始创建一个可用的客户机 我正在寻找一种可以打开套接字、处理底层协议并让我只处理需要发送的数据的东西,有点像“websocket netcat” (上下文:我需要从命令行与Chrome的基于WebSocket的远程调试服务器通话。) 编辑:到目前为止我已经找到了;就协议而言,这必须是开始使用cURL处理HTTP keepalives等的最简单方法(cURL本身还不会说WebSockets),但出于某种原因,Chrome根本没有响应该程序的指令。我已经设法让它通过WireShark向Chrome远程调试器发送相同的头,但它仍然发送不同格式的数据 Chrome的调试器的请求头以我如何不使用Python之类的编程语言直接与WebSockets服务器通信?,websocket,Websocket,我希望使用WebSockets连接到服务器,但不希望在Python这样的复杂环境中反复通过网络发送小块数据(这不是一台速度很快的计算机,Python有时需要一到两分钟的时间来初始化) 这就是说,WebSockets是一个非常复杂的协议——它包含了透明的乒乓球、帧和其他(公认非常棒的)功能——需要相当长的时间才能实现足够多的协议,从零开始创建一个可用的客户机 我正在寻找一种可以打开套接字、处理底层协议并让我只处理需要发送的数据的东西,有点像“websocket netcat” (上下文:我需要从命
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)包含有关有效负载大小的信息,因此它会受到所发送消息的影响