Обновление входящего сообщения

54
3

Для одного из моих проектов мне нужно создать своего рода внутреннюю систему электронной почты. В моем навигационном меню в верхней части страницы у меня есть ссылка на папку "Входящие", и эта ссылка также содержит количество непрочитанных сообщений.


В настоящее время, если вы получили новое сообщение, количество непрочитанных сообщений в навигации не обновляется до тех пор, пока страница не будет обновлена. Это необходимо изменить так, чтобы он обновлялся каждые несколько секунд сам по себе.


Я не хочу использовать что-то готовое, я хочу сам создать решение, но мне просто нужно нажать в правильном направлении.


Должен ли я использовать какую-то комбинацию ajax и webservices? Что-то другое? спасибо!

спросил(а) 2012-03-30T18:26:00+04:00 7 лет, 8 месяцев назад
2
Решение
48

Да, вам нужно использовать комбинацию ajax и веб-сервисов. Создайте метод ajax, который срабатывает каждые несколько секунд и попадает в конечную точку веб-службы, которая возвращает количество непрочитанных сообщений во входящих. Затем возвращаем метод ajax для обновления счетчика непрочитанных сообщений с результатом с сервера.

ответил(а) 2012-03-30T18:34:00+04:00 7 лет, 8 месяцев назад
Еще 1 ответ
44

Я бы порекомендовал взглянуть на SignalR. Это свободно доступная библиотека, которая позволяет JavaScript "общаться" с С# и наоборот, поддерживая соединение между клиентом и сервером. По сути, это означает, что при отправке сообщения вы вызываете событие, которое затем потенциально "подталкивает" уведомление клиенту, клиент затем проверяет, есть ли у них какие-либо сообщения и магия, они это делают! Это довольно напуганно и легко настраивается; но просто осознавайте потенциальные издержки, связанные с одновременным подключением большого количества пользователей.:)


SignalR:
https://github.com/SignalR/SignalR

Учебник:
http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx

ответил(а) 2012-03-30T18:41:00+04:00 7 лет, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема