Мне нужно написать веб-приложение чата Ajax в ASP.NET для друга, и у меня есть вопрос: если клиент1 отправляет сообщение клиенту2, как приложение должно отправить сообщение клиенту2? Есть ли лучший способ, чем отправлять запросы на сервер, «спрашивая», есть ли новые сообщения? Можно ли напрямую отправить сообщение клиенту?
Приложение чата в ASP.NET
Ответы (3)
Лучшее, что вы можете сделать, это использовать постоянное HTTP-соединение. Так же, как Google использует Google Talk на своем веб-сайте GMAIL.
Помните, что HTTP — это протокол без сохранения состояния, и что каждая транзакция выполняется с клиента. на сервер.
Сервер может использовать сеансы, чтобы определить, является ли этот клиент «известным», но что касается отправки информации обратно клиенту с использованием простого старого HTTP, я думаю, что это невозможно (я имею в виду соединение, инициированное сервером, а не ответ клиенту)
Вам нужно будет использовать Javascript для опроса сервера для получения информации.
Если вы хотите наоборот, вы можете использовать Java или Flash, но тогда вам также нужно подумать о туннелировании NAT, прокси-серверах и любых других странных настройках, которые могут использовать клиенты.
Нет. Я не думаю, что сервер может отправить сообщение браузеру клиента. Вот как я реализую приложение чата:
- client1 отправить сообщение через Ajax на сервер
- сервер сохранит его в репозиторий (я использую объект singleton для этого кейс)
- client2 получить сообщение из репозитория
- отметить сообщение как прочитанное
Я буду сохранять журналы чата в базу данных после закрытия или истечения сеанса чата.