Im Zweifel beides!
Für JavaScript gibt es bereits fertige Libraries, die einen Fallback-Modus unterstützen. Sie benutzen, wenn verfügbar, WebSockets, wenn nicht, dann Long Polling. Und falls das auch nicht geht, normales Polling.
(Wenn du dein Protokoll sauber trennst, kannst du eigentlich gleich eine ganze Reihe verschiedener Methoden anbieten. Für Apps oder Windows Programme kannst du ja neben all dem immer noch einen
TCP Server verwenden.)