默认
发表评论 10
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
你测试工具用的什么?测试时,服务端的所有log输出都关闭了吗?有没有看到什么异常打出?

你可以参考这几个贴子来把你的nodejs和socket.io环境优化优化。
socket.io性能测试讨论:socket.io 高并发实战socket.io保持6万+连接测试?如何实现单服务器300万个长连接的?
评论 10
引用:笑笑看 发表于 2018-04-10 14:59
测试工具是模拟点击事件:鼠大侠 鼠标连点器模拟点击的;服务器的日志是打开的。客户端没有异常,

MobileIMSDK是基于WebSocket发起通信的,WebSocket就是基于TCP的长连接,你这种模拟点击的,是没有办法模拟长连接的。你可以找WebSocket的长连接测试工具。说到底Web端即时通讯不是传统的Web短连接,你别理解混了
引用:笑笑看 发表于 2018-04-11 11:01
是这个样的,我想在web端做成群发功能,我做的模式是c2s,让后在s端循环用户后s2c,您是说c2s发送变成了 ...

不管是c2s还是s2c,在MobileIMSDK-Web都是长连接实现。
长连接建立的前端是,有一个握手、认证过程,所以你能在MobileIMSDK里看到登陆服务器的过程,其实就是建议长连接的过程。

你测试的时候,模拟的点击,如果没有模拟出这个完整的长连接,并基于这个长连接进行通信,等于没有测试意义。因为长连接的测试不像你普通的web页面测试:只需要http打开、页面打开完成后就关闭了,而长连接除非你退出应用,tcp是一直在连接着的,不会也不应该被关闭
引用:笑笑看 发表于 2018-04-12 14:17
我仔细核对了一下,刚刚开始进入页面的时候,就进行数据初始化以及模拟登陆服务器initMethod(sendUserId, ...

你测的点两只,相当于只是测了握手,还没有开始没长连接通信呢。
WebSocket的长连接建立是基于http的短连接握手实现的,所以很多人误以为websoket就像http的短连接一下,连一下就是了。其实不是这样。

你可以系统地读一读我整理的WebSocket系列基础文章:http://www.52im.net/thread-331-1-1.html
引用:笑笑看 发表于 2018-04-17 13:00
今天测试了一下,发现捂手建立长连接后,在点击发送一段时间后,会重新再次进行握手的动作,建立一个新的 ...

遇到这种情况,我给你的建议是量化测试:
1)先评估发生这种情况时的网络情况,最好持续的ping服务器,看看ping的结果,并据此来分析网络情况跟代码的表现是否能对的上号;
2)抓出浏览器端完整的log日志;
3)抓出服务端完整的log日志。

只有这些科学的信息情况下,才能分析出是什么原因,写网络程序一定不能凭感觉。MobileIMSDK-Web的商用案例很稳定,而且其实Websocket或socket.io方案本身也是经过大量考验的,一些低级问题出现的可能几乎很小,所以一定是另有原因。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部