Недостаток websocket \ SignalR с точки зрения влияния на ЦП и память по сравнению с обычным вызовом ajax javascript с использованием setInterval \ RxJS Obersvable.interval()

Я разрабатываю веб-приложение, которое включает в себя функцию уведомления "как в Facebook" (не веб-push-уведомление). Я хочу, чтобы уведомления обновлялись каждые несколько секунд.

Я понимаю разницу между обычным вызовом Ajax, который клиент будет делать каждые несколько секунд на сервер, и WebSocket \ SignalR, который установит соединение, которое останется открытым (?), И сервер будет передавать данные клиенту, когда это необходимо, поэтому клиенту не нужно будет делать новый HTTP-вызов каждые несколько секунд, даже когда это не нужно.

Так что я спрашиваю?

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

Мне интересно, лучше ли все же использовать WebSocket (SignalR), и в качестве побочного эффекта серверу нужно будет управлять таким количеством открытых подключений, которые будут потреблять много памяти и ресурсов ЦП для некоторых клиентов, которым может потребоваться получать уведомления. Насколько я понимаю, SignalR \ Websockets - это постоянство.

OR

Может быть, лучше делать вызов Ajax каждые несколько секунд, чтобы проверить, есть ли обновленные данные. таким образом, серверу не нужно будет постоянно управлять всеми соединениями, а только соединениями некоторых клиентов каждые несколько секунд.

Мне также интересно, есть ли ограничение или плохой побочный эффект при использовании SignalR \ WebSocket с точки зрения количества активных подключений.


person Omtechguy    schedule 12.08.2018    source источник
comment
webscoket не так требователен к ресурсам   -  person Fan Cheung    schedule 13.08.2018
comment
Пожалуйста, взгляните на эту ссылку stackoverflow.com/questions/10028770/   -  person Fan Cheung    schedule 13.08.2018