"连接"事件没有解雇客户端socketio

时间:2014-07-04 21:26:30

标签: javascript sockets websocket socket.io sinon

我正在使用socketio 1.0.4版本。除了客户端的connect事件未触发外,一切正常。

client.js

//establish the connection with our NodeJS server
var socket = io.connect('http://localhost:3000');
socket.on("connect", function(){
    console.log("connection made");
    socket.emit("room", {"room": "harness"});
});
socket.on('refresh', function (data) {
    //refresh the page
    console.log("Refreshing page");
    //document.location.reload(true);
});

server.js

var socketIO = require("socket.io")(server);
socketIO.on('connection', function(socket){
    logger.info("Connection to socket made:" + socket.id);
    socket.on("room", function(data){
        socket.join(data.room);
        console.log(this.id + " joined room - " + data.room);
    });
    socket.on('disconnect', function(){
        logger.info("socket disconnected:" + this.id);
    });
});

我在服务器端使用express。服务器上的一切正常。

更新

我使用sinonjs伪造某些xmlhttprequest调用。但我不是假装socketio电话。我认为socketiosinonjs混合不好。

1 个答案:

答案 0 :(得分:2)

你确定其他一切都正常吗?

这部分代码在我的1.0.6 socket.io库

上生成'connected'
var socket  = io.connect();

socket.on('connect', function() {
    console.log('connected');
});

相反,socket.io没有它的原生刷新功能,所以我不知道为什么你声称这会在刷新页面时触发。

socket.on('refresh', function (data) { ... } )