Звуковые оповещения (ajax)

3.19K
.
The Fast, Secure and Professional - Yii2
Звук проигрую так:

var audio = new Audio();
audio.src = 'audio/message.ogg';
audio.play();
.
Долбить сервер ajax запросами не круто. Уж лучше long pool какой-нибудь сделать, но всё равно не то. Можно попробовать прикрутить SockJS. А для маргиналов голые вебсокеты
.
Ксакеп
reaper, почему не круто?
.
XakepPRO, Потому что можно легко устроить самый настоящий ддос даже при небольшой посещаемости.
Да и потом, лучше же держать постоянное соединение, чем тратить время на кучу подключений.
Сегодня надо оповещения о почте, завтра еще кучку уведомлений.
Хорошо, если додумался все оповещения разом присылать, в случае с периодическими запросами.
А теперь попробуй представить, какая будет нагрузка при этом. Потому лучше открыть один раз соединение и когда надо, сервер сам уведомит юзера о чем требуется.
.
reaper, Не согласен в некоторых аспектах с тобой.
Ajax и нагрузка на сервер, смотря с какой стороны посмотреть.

К примеру на моём сервере хостер мне даёт 30 соединений для одного пользователя к базе за 1 секунду, в нормальном режиме за 1 минуту пользователь может сделать 60*30 = 240 подключений это потолок.
А теперь смотрим на DDOS, пускай какой-то Вася-Гость решил положить наш сервер, что делаю я:
1. Закрываю полностью сайт от гостей и делаю только главную открытой.
2. Все ajax скрипты выношу только для пользователей.
3. В Джоне есть прекрасная функция кеширования количества запросов, ставлю лимит на 200 запросов в минуту. Если Вася решит накручивать и ложить хост у него нечего не выйдет, так как лимит для его акка будет исчерпан и он увидет только ошибку.

Главное в уведомлениях через ajax учитывать скорость обновления уведомления для одного пользователя * на количество пользователей онлайн. Не делать обновление почты каждые 2 секунды, а поставить 1 минуту.

И делов то.

А вообще DDOS он и в Африке DDOS, либо он направлен на целый сайт либо на однун агруженную страницу. Защиту от него нужно уже в рамках сервера юзать. Моё имхо.

Либо даже самую безобидную страницу с одним запросом к базе, а чаще всего атака будет на главную страницу. А они с более чем одним запросом - можно положить сервак за считанные часы. Главное недопустить зацикленности. Постоянное соединение с базой - хорошо, но его нужно сбрасывать время от времени.
.
ramzes
# reaper (13.12.2014 / 01:47)
XakepPRO, Потому что можно легко устроить самый настоящий ддос даже при небольшой посещаемости.
ну если сервак совсем уж дерьмовый...
а кол-во уведомлений как может увеличить кол-во запросов, если ты все их будешь получать от одного запроса и уже js будет их обрабатывать и раскидывать по странице?
юзверь с таким же успехом будет сидеть и обновлять страницу в ожидании нового сообщения, только делать он это будет неконтролируемо по частоте, и пожирать больше ресурсов т.к. каждый раз ему сервер будет отдавать не минимум данных а целую страницу от и до.
.
Ксакеп
ramzes, в том-то и дело. Нет разницы, будем ли обновлять страницу (трогаем базу, делаем вывод), или делать ajax-запрос (трогаем базу, чуть меньше запросов, чистый вывод json, ie). Так чем ajax хуже?
.
XakepPRO
Ксакеп
reaper, на твой пост (13.12.2014 / 02:47) отвечу, раньше у apache была уязвимость, что если держать сединение (keep-alive), то при определенном количестве потоков сервер падал, не хватало либо процессорнрго времени, либо памяти. Вот. Сейчас такого нет вроде, но я хз. Надо покапать эту тему.
.
Если бы действительно было достаточно периодических запросов, то вряд ли бы вообще изобрели COMET, WebSockets. При периодических запросах ресурсы сервера используются не рационально. Данные не могут быть получены сразу, а только во время очередного запроса.
Задержки большие. Страдает отзывчивость. Куча мусорного входящего трафика на сервере.
В итоге при более менее нормальной посещалке всё торомзит и глючит.
.
XakepPRO, nginx уже сто лет как умеет проксировать веб-сокеты.
Всего: 101