[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Real Time на сайте
ЗлОй ПрОграММер
Интересует вопрос с помощью какой технологии можно реализовать мгновенные сообщения на сайте! На довольно крупном сайте, в плане посещаемости. Недавно копал в сторону Server Sent Events, реализовать реализовал, а вот что касается надёжности незнаю. К примеру в соц сетях как такое реализовывают и с помощью чего?
inpost
nodejs + socket.io .

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
ЗлОй ПрОграММер
Спасибо буду копать в эту сторону, нашёл статейку на хабре http://habrahabr.ru/post/127525/ почитаю, поизучаю
inpost
ЗлОй ПрОграММер
Не уверен, что nodejs+socket.io будет производительнее, чем long-пулинг (запросы с интервалами).

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
volter9
Можно еще просто node.js (на сервере) + websockets (на клиенте).

P.S.: В принципе можно сделать на PHP + websockets/ajax только это будет извратно.

_____________
Мой блог
Invis1ble
Цитата
Можно еще просто node.js (на сервере) + websockets (на клиенте).

а это
Цитата
nodejs + socket.io

по-твоему что? smile.gif

а вообще правильней говорить просто websocket. Остальное уже относится к конкретным реализациям.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

volter9
Цитата (Invis1ble @ 19.12.2014 - 05:20)
Цитата
Можно еще просто node.js (на сервере) + websockets (на клиенте).

а это
Цитата
nodejs + socket.io

по-твоему что? smile.gif

а вообще правильней говорить просто websocket. Остальное уже относится к конкретным реализациям.

Ну socket.io это библиотека для сокетов как на клиенте, так и на сервере. Я говорил именно про чистый вариант (ну вдруг кому то нравится велосипеды писать smile.gif ).

_____________
Мой блог
I++
nodejs+socket.io это тоже полинг, только нормальный через kqueue, epoll, его за глаза хватит. Треды не поддерживаются у nodejs у него внутри свой main тред, только форк с воркерами только хардкор. На любой i7 на хетзнере если поставить будет держать 50к коннектов)) А если совсем в шаманство податься, то можно и больше. Про пиковые нагрузки не говорил, но до 50к не дотянет, но обычно пики редкое явление, так, что никто не заморачивается, яркий пример тому опсосы, когда у них связь отваливается в пики.
inpost
I++
На моём серваке одном сейчас до 100 одновременных коннектов идёт (я про PHP-apache). Откуда 50к? Или там механизм другой и в фоновом режиме не такой нагруженный?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Hello
golang

_____________
VPS от 5$, первые 2 месяца - бесплатно.
GET
Цитата
long-пулинг (запросы с интервалами)

А вот интересно php`шный sleep() не создает ощутимую нагрузку на сервер?

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Hello
GET, сам sleep - никакой нагрузки, а вот не закрытое сетевое соединение может навредить.

_____________
VPS от 5$, первые 2 месяца - бесплатно.
GET
Цитата
а вот не закрытое сетевое соединение может навредить.


Hello
Ну да, я это тоже имел ввиду, что он в цикле (пример видел даже в бесконечном), как я понял может выполняться.

Hello, у тебя аватарки не видно.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Hello
GET, для этого и используют сервера с не блокирующим IO

_____________
VPS от 5$, первые 2 месяца - бесплатно.
GET
Цитата
GET, для этого и используют сервера с не блокирующим IO


Как я понял:
Цитата
Суть его заключается в том, что со стороны сервера и клиента создается сокет (со стороны клиента явно, со стороны сервера - в ответ на запрос соединения со стороны клиента). С каждым сокетом связаны два потока (InputStream и OutputStream): один служит для отправки сообщений, другой - для их приема. При этом все операции с данными потоками являются блокирующими, т.е. исполнение команд прерывается на время выполнения данных операций.


А конкретно, по этому примеру, никаких же каналов не создается? Обычный аякс запрос инициирует цикл, ждет ответ. Разве нет?

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.