通过服务器端日志分析WebSocket的server和client交互

版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://blog.csdn.net/i042416/article/details/89177445

测试过程:(每次测试只取第一次流程的记录)
i.webshop不变化,拉取最新backend-ms代码部署
1.打开webshop
2.打开simulator app
3.执行所有api
ii.最新的backend-ms不变化,拉取最新的webshop代码部署
1.打开webshop,
2.打开simulator app,
3.执行所有api
疑惑点:这里列出我发现的有点奇怪的地方,也许对找到原因会有所帮助。
日志中backend-ms与webshop的每次通信,require,response都是只有一次记录,

clipboard1

(截图来自log_latestBackend_with_oldFrontend)
但是backend-ms和simulator的通信,request和response的记录都不止一次,比如confirmRequest的request有三个,第二次比第一次添加了clientAddress,第三次和第二次内容重复
这里是不是因为在wsServer在对请求的处理过程中有多个log语句?

clipboard2

(截图来自log_latestBackend_with_oldFrontend)
然后还有下面这张截图,FieldUpdate时间的response有4个response,而且每个的clientSocketID都不一样,但是我当时只开了一个网页,对应的是第四个(最后一条)response的clientSocketID.而在日志开头,也只有一条webshop的接入的记录。下面这张截图来自第二次测试,第一册测试也有相同的问情况,但是只有2个response,截图附在更下面。

clipboard3

(截图来自log_latestBackend_with_latestFrontend)
同样是只开了一个webshop,该webshop对应的clientSocketID对应第二条(最后一条)response。

clipboard4

(截图来自log_latestBackend_with_oldFrontend)
我们在分析日志之前,应该尽可能排除所有的干扰因素,这样做出的判断才准确。

  1. 分析日志之前,应该先停掉server,把日志文件清空。
  2. 确保启动的server只有你一个人的web shop使用到。这个可以通过我之前在微信上的描述,即修改server配置文件里的监听端口,启动一组新的server,这些server监听的端口和Oliver他们正常测试使用的server的监听端口互不相同。这样大家可以并行工作,互不干扰。
  3. 每个web shop实例给WebSocket服务器发送请求时,附上自己的unique ID(human readable), WebSocket server接到请求后打印出这个unique id,这样服务器就知道到底是哪一个具体的Web Shop实例发起的请求了。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

猜你喜欢

转载自blog.csdn.net/i042416/article/details/89177445
今日推荐