第一个想法是制作一个Socket.io客户端,除了你会忙着窃听不是标准的Socket.io协议(WebSocket是一个标准)之外,并没有那么难。我过去做过这样的事情,但这是浪费时间。
由于Node.js的具有共享范围(全球范围)和它主要是一个单一的流程应用程序,你总是可以用Socket.io交互的非实时专用HTTP服务器:
var app = require('http').createServer(function S(req, res){
res.writeHead(200, {
'Content-Type': 'text/html'
});
res.end('');
var i;
var sockets = io.sockets.sockets;
for (i in sockets) {
if (sockets.hasOwnProperty(i)) {
var socket = sockets[i];
// you have res, and socket so so something with it!
socket.emit('myevent', {msg: "json is cool :)"});
}
}
});
var io = require('socket.io').listen(app);
app.listen(80);
io.sockets.on('connection', function (socket) {
socket.on('theirsevent', function (data) {
});
});
恕我直言,这是更好的修改更多模块的Apache。这甚至可以用于Python和.Net,因为它是HTTP。
我认为这比任何其他解决方案更简单/更清洁。 ......除非有一些用例说明这种解决方案不适合。
可能使用Redis PubSub? – Maziyar 2013-07-22 12:09:52