Я бы лично использовал только Node.js. Вместо долгого опроса вы можете отправить новую информацию всем доступным клиентам. Node.JS чрезвычайно быстр при доставке контента в реальном времени и способен делать все в одном пакете. Кроме того, клиентская и серверная части написаны на javascript, что упрощает разработку, отладку и доставку. Как разработчик вы можете увидеть преимущества этого.
Вот пример приложения, использующего Node.js и модули Express, Jade и NowJS. Конечно, это также можно использовать как комбинацию с вашей CMS, работающей на Apache и Node.JS, обслуживающей динамический контент. либо Nginx, либо сценарий узла, действующий в качестве обратного прокси-сервера перед этим сценарием и Apache.
Простое приложение для чата
Server.js
var express = require('express')
, app = express.createServer()
, nowjs = require('now')
/* configure express server */
//...
app.get('/', function(req, res){
res.render('chat')
})
var everyone = nowjs.initialize(app)
// Server scoped function called by single client
everyone.now.distributeMsg = function(msg){
// Client scoped function of every connected client
this.now.receiveMsg(msg)
}
app.listen(3000)
chat.jade
!!!
html
head
script(type='text/javascript', src='/nowjs/now.js')
body
#log
input#entry(type='text')
input#submit(type='button')
script
$(function(){
$('#submit').click(function(){
now.distributeMsg($('#entry').val())
})
now.receiveMsg = function(msg){
$('#log').append('<div>' + msg + '</div>')
}
})
Да, это действительно так просто и не потребует много кода, чтобы превратить его в полнофункциональное приложение чата. На самом деле ваша разметка и CSS будут занимать больше строк, чем код приложения. Удивительно!