Я слышал о людях, которые работают над этим, удерживая соединение (т.е. не отправляя ответ), пока оно не умрет, а затем не восстановит его. 30 секунд - это не так много.
Если сделать это таким образом, пользователь все равно будет чувствовать себя более отзывчивым, чем опрос каждые 30 секунд.
Об использовании полосы пропускания: в зависимости от полезной нагрузки «типичные» запросы HTTP могут варьироваться от нескольких сотен байтов до нескольких килобайт, особенно с файлами cookie.
При среднем размере, скажем, 5 КБ (пессимистично) каждые 30 секунд, что в сумме составляет около 14 МБ в сутки. Может быть, вы можете уменьшить размер, указав путь в своих файлах cookie, чтобы они не отправлялись для этих подключений. Возможно, вам не нужно отправлять всю полезную нагрузку каждые 30 секунд.