2014-07-04 70 views
0

我正在使用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。在服務器上一切正常。

UPDATE:

我使用sinonjs僞造一定的XMLHttpRequest調用。但我並沒有僞造socketio電話。我認爲socketiosinonjs混合不好。

回答

2

你確定一切正常嗎?

這部分代碼生成我的1.0.6 socket.io庫

var socket = io.connect(); 

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

「連接」相反socket.io沒有它的本地刷新功能,所以我不知道爲什麼你聲稱這會刷新頁面。

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

我想我已經想通了這個問題。我正在使用'sinonjs',我認爲它與'socketio'完美搭配。我正在使用sinonjs的fakeserver功能。 – Gyandeep