GWT: Как создать буфер (FIFO) для хранения значений 2D-массива (поступающих с сервера, rpc) на стороне клиента? - PullRequest
0 голосов
/ 16 июня 2011

Я использую RPC-подключение к источнику событий для передачи данных со стороны сервера после определенного периода времени, например. 200 мс, так что клиентский запрос не существует, поэтому мне нужен буфер (FIFO) на стороне клиента, потому что сервер отправляет много данных (200 мс очень быстро) и для отображения данных в графе на стороне клиента (я использую GChart), мне нужно показать это плавно на стороне клиента, и поэтому мне нужен буфер на стороне клиента для хранения данных и отображения значений (x, y) (x1, y1) (x2, y3) .... ( Xn, Yn) ... на графике в режиме FIFO и работайте плавно, а также я могу динамически регулировать задержку 200 мс в соответствии с производительностью клиента и отправлять обратно на сервер информацию о

Связь между клиентом и сервером может быть записана в виде человеческого разговора, как показано ниже

Клиент: замедление работы сервера, я не могу обработать так много данных, и мой буфер FIFO заполнен ..

Сервер: хорошо, я меняю время задержки с 200 мс до 500 мс, но когда у вас будет меньше данных для выполнения, пожалуйста, дайте мне знать, что я снова переключу его на более быстрое настроение, которое составляет 200 мс.

Клиент: хорошо, теперь отправьте мои быстрые данные, мой буфер пуст.

Заранее спасибо Gwt, gchart, источник событий

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Простой ArrayList не подойдет? (Используется как буфер, просто добавляя значения и удаляя первый элемент?)

Если это слишком медленно (слишком много накладных расходов на эмуляцию Java), вы, вероятно, могли бы создать более собственный массив Java или найти готовую реализацию для работы.

Я бы начал использовать простой прямой ArrayList и посмотрел, работает ли он достаточно быстро, и если он окажется слишком медленным, я бы искал более быструю альтернативу ...

0 голосов
/ 16 июня 2011

Отправленные сервером события (он же EventSource) только один: сервер-клиент.См. Это: http://www.html5rocks.com/en/tutorials/eventsource/basics/

В вашем случае вам необходимо отправить некоторые данные обратно на сервер, чтобы уведомить его о необходимости более медленной отправки данных (увеличение задержки).Поскольку EventSource является только одним способом, вам потребуется дополнительное соединение (возможно, GWT-RPC), чтобы уведомить сервер о замедлении.

...