ЗлОй ПрОграММер
18.12.2014 - 20:46
Интересует вопрос с помощью какой технологии можно реализовать мгновенные сообщения на сайте! На довольно крупном сайте, в плане посещаемости. Недавно копал в сторону Server Sent Events, реализовать реализовал, а вот что касается надёжности незнаю. К примеру в соц сетях как такое реализовывают и с помощью чего?
inpost
18.12.2014 - 21:22
nodejs + socket.io .
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
ЗлОй ПрОграММер
18.12.2014 - 23:35
Спасибо буду копать в эту сторону, нашёл статейку на хабре
http://habrahabr.ru/post/127525/ почитаю, поизучаю
inpost
19.12.2014 - 01:18
ЗлОй ПрОграММерНе уверен, что nodejs+socket.io будет производительнее, чем long-пулинг (запросы с интервалами).
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
volter9
19.12.2014 - 05:13
Можно еще просто node.js (на сервере) + websockets (на клиенте).
P.S.: В принципе можно сделать на PHP + websockets/ajax только это будет извратно.
_____________
Мой блог
Invis1ble
19.12.2014 - 05:20
Цитата |
Можно еще просто node.js (на сервере) + websockets (на клиенте). |
а это
Цитата |
nodejs + socket.io |
по-твоему что?
а вообще правильней говорить просто websocket. Остальное уже относится к конкретным реализациям.
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
volter9
19.12.2014 - 08:20
Цитата (Invis1ble @ 19.12.2014 - 05:20) |
Цитата | Можно еще просто node.js (на сервере) + websockets (на клиенте). |
а это
Цитата | nodejs + socket.io |
по-твоему что? а вообще правильней говорить просто websocket. Остальное уже относится к конкретным реализациям. |
Ну socket.io это библиотека для сокетов как на клиенте, так и на сервере. Я говорил именно про чистый вариант (ну вдруг кому то нравится велосипеды писать
).
_____________
Мой блог
nodejs+socket.io это тоже полинг, только нормальный через kqueue, epoll, его за глаза хватит. Треды не поддерживаются у nodejs у него внутри свой main тред, только форк с воркерами только хардкор. На любой i7 на хетзнере если поставить будет держать 50к коннектов)) А если совсем в шаманство податься, то можно и больше. Про пиковые нагрузки не говорил, но до 50к не дотянет, но обычно пики редкое явление, так, что никто не заморачивается, яркий пример тому опсосы, когда у них связь отваливается в пики.
inpost
19.12.2014 - 08:55
I++На моём серваке одном сейчас до 100 одновременных коннектов идёт (я про PHP-apache). Откуда 50к? Или там механизм другой и в фоновом режиме не такой нагруженный?
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
golang
_____________
VPS от 5$, первые 2 месяца -
бесплатно.
Цитата |
long-пулинг (запросы с интервалами) |
А вот интересно php`шный sleep() не создает ощутимую нагрузку на сервер?
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET, сам sleep - никакой нагрузки, а вот не закрытое сетевое соединение может навредить.
_____________
VPS от 5$, первые 2 месяца -
бесплатно.
Цитата |
а вот не закрытое сетевое соединение может навредить. |
Hello
Ну да, я это тоже имел ввиду, что он в цикле (пример видел даже в бесконечном), как я понял может выполняться.
Hello, у тебя аватарки не видно.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET, для этого и используют сервера с не блокирующим IO
_____________
VPS от 5$, первые 2 месяца -
бесплатно.
Цитата |
GET, для этого и используют сервера с не блокирующим IO |
Как я понял:
Цитата |
Суть его заключается в том, что со стороны сервера и клиента создается сокет (со стороны клиента явно, со стороны сервера - в ответ на запрос соединения со стороны клиента). С каждым сокетом связаны два потока (InputStream и OutputStream): один служит для отправки сообщений, другой - для их приема. При этом все операции с данными потоками являются блокирующими, т.е. исполнение команд прерывается на время выполнения данных операций. |
А конкретно, по этому примеру, никаких же каналов не создается? Обычный аякс запрос инициирует цикл, ждет ответ. Разве нет?
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.