如何调试Websockets?

时间:2010-10-13 15:05:19

标签: networking websocket

我想监视websocket流量(比如查看客户端/服务器正在使用的协议版本)以进行调试。我该怎么做呢? Wireshark对于这样的任务来说似乎太低了。建议?

4 个答案:

答案 0 :(得分:27)

Wireshark听起来就像你想要的那样。握手后WebSockets的框架或结构非常少(所以你想要低级别),即使有,wirehark也很快(或已经)有能力解析它并向你显示结构。

就个人而言,我经常使用tcpdump捕获,然后使用wireshark解析数据。当您可能无法在要捕获数据的设备(即无头服务器)上使用wireshark时,这一点尤为出色。例如:

sudo tcpdump -w /tmp/capture_data -s 8192 port 8000

或者,如果您可以控制WebSockets服务器(或代理),则始终可以打印出发送和接收数据。请注意,由于websocket框架以'\ x00'开头,因此要避免打印,因为在许多语言中'\ x00'表示字符串的结尾。

答案 1 :(得分:7)

如果您正在寻找发送和接收的实际数据,最近的Chrome Canary和Chromium现在具有WebSocket消息帧检查功能。 您可以在this thread找到详细信息。

答案 2 :(得分:6)

我认为你应该使用Wireshark

步骤

  • 打开wireshark
  • 转到捕获并按照下面的路径:捕获>接口>在适当的设备中开始捕获。
  • 在过滤器tcp.dstport == your_websoket_port
  • 中编写规则
  • 点击申请

答案 3 :(得分:0)

简单来说,wireshark太复杂了,我想只检查连接是否可以建立。关注Chrome插件“Simple Web-socket(链接:https://chrome.google.com/webstore/detail/simple-websocket-client/pfdhoblngboilpfeibdedpjgfnlcodoo?hl=en)”就像魅力一样。见图。

https://lh3.googleusercontent.com/bEHoKg3ijfjaE8-RWTONDBZolc3tP2mLbyWanolCfLmpTHUyYPMSD5I4hKBfi81D2hVpVH_BfQ=w640-h400-e365