SPA: using websockets only. Why not?
IMO the only reason to not use Websockets is that there is more inertial tooling and middleware around HTTP request/response, like caches, proxies, etc. But HTTP request/response sucks badly at live updating. The more live you want to make your app the more HTTP request/response, and frameworks built around that (Rails, Django, etc.), feel like medieval technology.