Как отправить сообщение с сервера клиенту в веб-приложении - PullRequest
3 голосов
/ 21 февраля 2012

Недавно я столкнулся с такой необходимостью.Клиент (веб-браузер) запрашивает выполнение задачи асинхронно на стороне сервера, затем клиент оставляет ее позади.

Когда сервер завершает задачу, он уведомляет клиента, отправляя некоторое сообщение.

Итак, мой вопрос:

Есть ли способ инициативной отправки сообщения (простой текст, json и т. Д.) Со стороны сервера клиенту?

Ответы [ 2 ]

7 голосов
/ 21 февраля 2012

Вдобавок ко мне приходят два возможных решения:

Первым, наиболее распространенным (и самым безопасным) решением для этого, вероятно, будет AJAX long-polling, то есть настройка ajax.запрашивать у клиента периодически делать запрос и что-то делать с ответом.Например, настройка ресурса, который возвращает ваше «завершенное» сообщение, когда обработка на стороне сервера завершена.Это не идеально, учитывая ваш вопрос, но это, безусловно, выполнимо и довольно надежно.

Чтобы действительно использовать технологию push (это именно то, что вы просите, но не обязательно то, что вам действительно нужно), вы должны принятьвзгляд на WebSockets .Если вы посмотрите на эту ссылку, вы увидите в теле статьи список браузеров, поддерживающих эту технологию, и, в зависимости от вашего случая использования, вы можете или не захотите продолжить расследование.

Я личноиметь дело со многими старыми браузерами, так что опрос ajax был бы моей идеей.Предполагая, что это полу-длительный процесс, опрос каждые 2-5 секунд не должен слишком расстраивать ваших пользователей.Это не будет хорошо для чатов в реальном времени или чего-то еще, но для "Я проанализировал ваш файл 200M Excel" это будет хорошо.

0 голосов
/ 21 февраля 2012

Существует так много методов, таких как использование виртуального SMTP любого сервера обмена и других почтовых серверов, таких как Yahoo, Google. проверить эту ссылку может помочь вам в этом отношении

...