第一個想法是製作一個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