There are many ways of doing this. HTTP isn't the best suited protocoll for this (since it doesn't support sessions), but since you're already using it. Let's look at a solution for HTTP.
Instead of polling (which is expensive but simple to implement) you can push data from the server to the clients.
For doing this with HTTP, use COMET that is an umbrella term for a few different techiniques for doing this. See http://en.wikipedia.org/wiki/Comet_%28programming%29
Doing this with nginx you need an extra module, for example: https://github.com/wandenberg/nginx-push-stream-module