Существует три подхода к созданию системы чата на основе веб-сайта.
Решение Java-апплета - найдите или создайте Java-апплет, который взаимодействует с сервером чата. Апплет может быть клиентом IRC или заказным клиентом чата с настраиваемым сервером. Я даже видел, как некоторые веб-сайты используют Java-апплет в качестве внешнего интерфейса связи, где весь интерфейс запускается Javascript и HTML в браузере, но Javascript отправляет и принимает события из апплета для запуска чата.
AJAX Post / Poll - Каждый раз, когда пользователь пишет сообщение, отправляйте сообщение на HTTP-сервер, где все подключенные пользователи периодически опрашивают новые сообщения.
Комета - Используя в основном Javascript, каждый клиент устанавливает долговременное соединение с сервером HTTP и бездействует. Когда сообщение отправляется от пользователя, оно отправляется через уже существующее соединение. И вместо того, чтобы опрашивать их, новые сообщения от других пользователей просто передаются по тому же соединению.
Лично я считаю третий вариант самым захватывающим, но также и самым сложным. Вероятно, вам потребуется создать собственную версию HTTP-сервера для поддержки долговременного соединения, которое требуется для Comet. А поскольку для дескрипторов сокетов в TCP / IP существует 16-битное ограничение, вы будете ограничены до 64 КБ сокетов для каждого IP на вашем сервере. (Помните, что каждому клиенту понадобится открытый сокет!) Наконец, методы построения клиентского кода Comet в разных браузерах сильно различаются. Для этого существует несколько фреймворков, но вам придется поддерживать их, пока выходят новые браузеры.
Если у вас небольшой веб-сайт, и вы хотите преодолеть непреодолимую проблему, тогда просто пойдите с опросом AJAX. Это весело, это не так сложно, и вы многому научитесь. Если вы не можете быть обеспокоены, то просто найдите Java-апплет. После того, как он настроен на соответствующий сервер, вам больше не придется беспокоиться о его обслуживании, так как это решение очень независимо от клиента. Конечно, для этого требуется, чтобы на клиенте была установлена среда выполнения Java, и это не всегда будет так ...