En primer lugar, la votación es el camino a seguir. Puede hacerlo con Flash o Silverlight o Comet - http://en.wikipedia.org/wiki/Comet_(programming) que puede mantener abierta una conexión tcp para las notificaciones.
Una página web en sí misma no puede mantener un socket abierto, por lo que no hay forma de notificar directamente a un cliente web.
[Editar]
Pero pensar en ello, ¿cuántas cliente puede mantener una conexión TCP hacia un servidor a la vez? Para un sistema más grande, se quedarán sin enchufes disponibles con bastante rapidez, ya que hay 65k puertos disponibles.
Cuántas conexiones simultáneas puede manejar su servidor depende de sus recursos de hardware. Si tienes suficiente memoria y CPU, deberías poder manejar ~ 100k y tal vez más. Pero si cada solicitud accede a una base de datos u otro recurso a través de tcp/ip, podría estar limitado a la cantidad de puertos por ip disponible (65k). También debe hacer que las solicitudes de inserción vayan en contra de un dominio separado, ya que normalmente un navegador limita a dos conexiones simultáneas por dominio, por lo que no interferirá con la carga normal de la página.
El uso de sondeo en combinación con servidores de caché en la parte frontal es una buena solución. Puede tener lógica en el servidor que actualice el caché por cliente, reduciendo la carga para cada encuesta. Puede actualizar la memoria caché para los usuarios que han iniciado sesión o sondeado dentro del número X de minutos para reducir aún más la actualización de la memoria caché. Y para mí implementar la atracción es más fácil que tirar, la tecnología es sabia.
Sí, se puede hacer sin Flash ni Silverlight; mira las respuestas sobre http://en.wikipedia.org/wiki/Comet_%28programming%29 –
@Marcel: gracias ... edité mi respuesta para reflejar eso. –
Gran respuesta, esto me dio algunos buenos lugares para empezar a buscar. – Achilles