Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Node.js + свой движок php (https://javascript.ru/forum/misc/39522-node-js-svojj-dvizhok-php.html)

Dorian_bs 03.07.2013 03:07

Node.js + свой движок php
 
Всем привет!
Сейчас стало необходимым изучить работу node.js socket.io

Дело в том, что на сайте необходимо выполнять определенные события. То есть мы передаем данные между пользователями в онлайн-режиме.

Для примера возмем Васю и Петю.
Вася отправляет сообщение Пете. И Петя сразу же его получает.

Изначально пытался реализовать используя comet технологии (long poll).
То есть у нас на сервере есть страница в которой рассположен бесконечный цикл с задержкой sleep(), которые в свою очередь имеет внутри условие выполняясь которое - приводит к остановке цикла и возвращению ответа ajax-запросу, который установил пользоатель.
Но к сожалению данный способ я исключил, ибо если пользователей много, или же пользователь решил много раз обновить страницу - цикл будет инициализироваться много раз и все они будут активны до тех пор - пока не выполнится условие, которое приведет к завершению циклов. А это - огромная нагрузка на сервер, так как в условии обращаемся в БД.

После на пошел использовать websocket... Сразу появилась проблема создания сервера. Около двух недель мурыжился с phpdaemon в результате забив на него.
Для себя выбрал NODE.JS. Прост в использовании. После ознакомления с документацией создал простейший чат.
Я был рад до момента, когда задал вопрос "как быть дальше?". У меня имеется сообственный движок написанный на фреймворке KOHANA.
Ведь сам чат расположен на index.html, который лежит на сервере node.js использующий установленный мною порт.

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

Пока единтсвенная идея - это создание iframe, который будет получать javascript код на выполнение. Но тут возникает проблема с передачей уникальных значений в iframe.. Id, hesh-ключей и пр... То, что должно быть недоступно глазу пользователя.

Прошу прощения, что словоблудствую, но я попытался максимально подробно описать проблему и вопрос.
Есть способы синхронизовать мой сайт и node используя только ajax?

Очень жду Ваших мыслей, комментариев и ссылок! Заранее спасибо!

deivan 03.07.2013 13:15

например, я отказался от socket.io в пользу SockJs - работает немного стабильнее.
серверная часть сокжс-а легко цепляется к ноде, клиентская - к сайту через ЖС. получается отменный быстрый туннель для передачи данных, при этом основная часть сайта на пхп - также прекрасно себя чувствует.

Dorian_bs 03.07.2013 18:09

Огромное спасибо! И в правду очень стабильно и просто) А главное - работа файлами html\php, которые могут лежать где угодно)


Часовой пояс GMT +3, время: 11:55.