浏览器接收处理websocket传输的大量数据

唉_唉 发布于 2016/10/21 14:13
阅读 2K+
收藏 0
一个车辆实时监控系统,服务器实时接受车辆终端发送的实时坐标数据,然后通过websocket发送到浏览器(客户端),浏览器接收到数据后在javascript里面进行数据处理,目前出现问题是:websocket传输数据的频率过快时(如:1000条/秒),浏览器来不及处理数据导致浏览器崩溃.如果1-2条数据/秒传输客户端是能正常处理数据的.请问能否实现类似这种大数据量传输时的实时数据处理。。有什么方法.急。。。。

以下是问题补充:

@唉_唉:本人不会写服务器,只会前端js数据交互.需求就是javascript中接收服务器通过websocket传输的数据 我在js中处理 然后展示到页面.就这么一个过程 (2016/10/21 16:14)
加载中
0
luv
luv
不要发那么快就行了。服务端检测如果坐标数据在指定半径 圆圈范围内,表示大概车子没动。如果超过了半径圆圈范围再向客户端发送,网络通讯压力减小,但是服务器检查处理坐标的负载不变。
0
luv
luv
或则客户端定时获取发送请求,不由服务端主动推送。这样也先得连续,比如浏览器客户端websocket 2秒请求一次。
0
554330833a
554330833a
nodeJS么?
554330833a
554330833a
为什么浏览器会崩溃?我第一次见会这样的
唉_唉
服务器是Netty写的(不是我负责这块)
0
我的CSharp时代
我的CSharp时代
发太快了,3秒发一次
kakai
kakai
回复 @唉_唉 : 领导要是不懂你就要尽可能的从技术角度去说服他
kakai
kakai
回复 @唉_唉 : 发那么快客户端在固定帧频下也处理不过来,一般帧率24帧/秒,30帧/秒,游戏一般60帧/秒
唉_唉
是啊数据发送间隔慢就好些》。可是领导就是要快的情况下
0
fly2xiang
fly2xiang
发的再快屏幕最多每秒刷新60次,其他的都浪费了
0
头号大宝贝
头号大宝贝

做过一模一样的需求。

既然主要写js处理,那么就写一个处理开关,摒弃短频快的数据就好了。

ws设置处理数据开关,5秒一次开关。开的时候就处理,关的时候即便接受数据,也不在地图上显示。

不然,别说1000/s的数据,100/s的坐标都能让你的地图坐标回显卡死。


另外,针对你的问题,给你个参考办法。

https://www.oschina.net/code/snippet_1258911_34310

0
y
yizhilong

大数据量传输时的实时数据不是js的强项,且渲染更消耗内存,引起浏览器内核崩溃。

速度控制在5个/s左右,服务器端控制下频率,你那边只需要控制渲染即可。

0
kakai
kakai

你用websocket的数据实时性要求这么高,那么通信数据最好别用字符流,因为用字符流你还得解析字符(典型的json通信),我建议用字节流通信,但js处理字节又是它的弱项,不过node.js有个字节处理的东西,你可以从node.js中照搬过来。

js处理字节的库:
https://github.com/dcodeIO/ByteBuffer.js/tree/master/dist

返回顶部
顶部