многие службы чата на веб-сайтах используют java или flash, а не javascript, причина в том, что эти языки предоставляют поддержку сокетов, что означает, что они могут иметь постоянное открытое соединение с сервером для обновлений.
с помощью javascript вы должны опрашивать сервер через регулярные интервалы, используя ajax или комету, что является техникой для длительного опроса, но время от времени приходится восстанавливать соединения.
когда html5 станет более распространенным, вы сможете использовать веб-сокеты для прослушивания обновлений на сервере, но на данный момент наиболее жизнеспособным вариантом является ajax или плагин на основе flash (даже просто для предоставления сокетов для использования js).
что-то вроде этого обеспечит мост типа socket-swf-js для связи с вашим сервером
http://code.google.com/p/jssockets/