前序
最近刚到新的公司了,熟悉下环境,立马就要开始完成需求coding了。。比较坑的是,代码完全不熟悉的情况下,给个需求涉及到十几个模块了,都要改,郁闷。其中刚好有一个模块是web地图的,根据代码查看发现是通过WebSocket和flash进行实现的。
比较坑的是,我这边看不到websocket服务端代码的,只有客户端,然而客户端代码大部分都是写在JavaScript中的,刚开始还不太熟悉那个,连发送请求的数据是什么都不知道,无奈只好想到抓包了。
过滤
只要说到抓包,肯定是离开不了Wireshark的,堪称网络工程师的神器啊,基本的使用起来比较简单。当然了要深入实践也不容易,主要是要经常有使用的场景。这也算是我第一次通过这个工具帮助完成工作任务吧。
好了,废话不多说,去官网安装最新版Wireshark。
过滤条件为websocket:
这样就可以过滤掉其他大量的干扰数据包,只查看使用websocket协议的数据包。
查看数据包
根据上图,第一条就是发送请求的数据包了,第二条是服务端响应的数据。
请求数据
继续查看下面数据包的详细信息:
最下面那行就是我们发送请求的数据了,可以看到就是一串JSON数据,如果是二进制的话就没办法查看了。
响应数据
再看一下服务器端响应的数据:
这里我们就知道了,大部分逻辑都是在websocket服务器端进行处理的,因此要完成这个功能需求就必须要修改websocket服务器端代码了。因为这个模块是一个比较关键的地方,而我才刚到这边来,老大也不会放心直接让我动那块的,因此只好跟他说一下这个情况就好了,让之前写这个模块的人员帮我添加这个功能吧。
总结
虽然最后我也没有解决什么需求问题,不过比抓包之前要清晰明了多了。在这之前,我根本就不清楚这个地图是怎么进行数据通信交互的,现在算了比较了解了。也是我第一次见到有Websocket技术的实践吧。
本文介绍了如何利用Wireshark抓取WebSocket数据包,以解决在没有服务端代码的情况下理解Web地图模块的数据通信。通过设置过滤条件,只显示WebSocket协议的数据包,解析请求和响应数据,发现大部分逻辑在服务器端,为解决问题提供了方向。
754

被折叠的 条评论
为什么被折叠?



