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?
Очень жду Ваших мыслей, комментариев и ссылок! Заранее спасибо!
Последний раз редактировалось Dorian_bs, 03.07.2013 в 03:11.
|