GWT:如何使缓冲区(FIFO)在客户端保存一些2D数组值(来自服务器,rpc)?

时间:2011-06-16 09:59:37

标签: arrays gwt rpc fifo

我在一段时间后使用事件源rpc插件来从服务器端推送数据,例如。 200ms,因此不存在客户端请求,因此我需要客户端的缓冲区(FIFO),因为服务器发送大量数据(200ms非常快)并在客户端图中显示数据(我正在使用GChart),我需要在客户端顺利显示它,这就是为什么我需要客户端缓冲区来保存数据并显示值(x,y)(x1,y1)(x2,y3)....( Xn,Yn)...在图中以FIFO方式执行并且执行顺畅,我也可以根据客户端性能动态调整200ms延迟并向服务器发回信息

客户端和服务器之间的通信可以写成人类对话,如下所示

客户端:放慢服务器的速度我无法处理这么多数据,我的FIFO缓冲区也已满了..

服务器:好的,我将延迟时间从200毫秒更改为500毫秒,但是当你的数据执行量较少时,请让我知道我会再次使用200毫秒更快的心情。

客户端:好的,现在发送我的快速数据,我的缓冲区为空。

提前感谢Gwt,gchart,event-source

2 个答案:

答案 0 :(得分:1)

一个简单的ArrayList不行吗? (用作缓冲区,只需附加值并删除第一个元素?)

如果这太慢(Java仿真开销太大),你可能会创建一个更多的java本机数组,或者找一些现成的实现来使用。

我会开始使用一个简单的直接ArrayList,看看它是否运行得足够快,如果结果太慢,我会寻找更快的替代方案......

答案 1 :(得分:0)

Server-Sent Events(又名EventSource)只是一种方式:服务器到客户端。请参阅:http://www.html5rocks.com/en/tutorials/eventsource/basics/

在您的情况下,您需要将一些数据发送回服务器,以通知它更慢地发送数据(增加延迟)。由于EventSource只是一种方式,因此您需要一个额外的连接(可能是GWT-RPC)来通知服务器减速。