我有一個非常簡單的代碼,試圖從外部進程發送到socket.io服務器。不能得到socket.io發射器與socket.io-redis一起工作
server.js
var io = require('socket.io')(3201);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));
io.on('connection', function (socket) {
console.log("test 1");
socket.on('testemit', function (data) {
console.log("test 2");
console.log(data);
});
});
客戶端,emit.js(如在該文檔中發現):
var io = require('socket.io-emitter')({ host: '127.0.0.1', port: 6379 });
setInterval(function(){
io.emit('testemit', {a: 'aaa'});
}, 3000);
在服務器側,如果我與
DEBUG=* node server.js
運行它
我所得到的全部是:
socket.io:server initializing namespace/+0ms
socket.io:server creating http server and binding to 3201 +3ms
socket.io:server creating engine.io instance with opts {"path":"/socket.io"} +1ms
socket.io:server attaching client serving req handler +2ms
socket.io-parser encoding packet aaa {"type":2,"data":["testemit",{"a":"aaa"}],"nsp":"/"} +0ms
socket.io-parser encoded {"type":2,"data":["testemit",{"a":"aaa"}],"nsp":"/"} as 2["testemit",{"a":"aaa"}] +1ms
但testemit回調沒有被調用。
我失蹤了什麼?
emit.js在「node emit.js」 – memical
上運行在同一臺服務器上,我完全誤解了這一點。所有的作品。這個emit會發送給這個socket.io服務器的所有socket.io客戶端。 – memical