2015-02-20 2 views
1

Я использую концентратор на стороне сервера. Клиентские методы Signal R можно вызывать много раз за 1 секунду. Предполагается, что клиентский метод вызывается 1000 раз. Но клиент не может обрабатывать большое количество запросов. Есть ли способ дросселировать клиентские методы на стороне сервера. Поэтому вместо того, чтобы звонить 1000 раз, я буду проходить только 100 раз в секунду. Я наткнулся на таймер для моего требования. Но это займет слишком много памяти (загрузка процессора). Есть ли хороший способ сделать это?Дросселирование в сигнале R клиентов на стороне сервера

+0

Я бы создал буфер сообщений на стороне клиента, записи которого вы можете легко обрабатывать с нужной скоростью. – Robert

+0

Но это будет оказывать давление на сторону клиента .., что нежелательно – Sushil

+1

Я не совсем понимаю ... когда вы хотите, чтобы меньше сообщений отправлялось, вы должны решить, какие из них следует отправлять, а какие можно отбросить. Это полностью зависит от того, что вам нужно. BTW: Обновленная информация на 1000 Герц не имеет никакого смысла в моих глазах (за исключением того, что они помещаются в длинный список или диаграмму), потому что ваши экраны клиентов обновляются намного медленнее. – Robert

ответ

0

Если концентратор SignalR не находится в веб-ферме или среде с балансировкой нагрузки, вы можете сохранить время, в течение которого последнее сообщение было передано в кеш памяти приложения (на стороне сервера), а затем проверить время, в течение которого было передано последнее сообщение (из кеша) перед передачей другого сообщения. Не отправляйте сообщение, если оно уже было отправлено в течение X миллисекунд.

 Смежные вопросы

  • Нет связанных вопросов^_^