我使用的是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调用。但我没有伪造socket调用。我认为socketio
和sinonjs
不能很好地混合。
您确定其他一切工作正常吗?
这部分代码在我的1.0.6套接字上生成'connected'。io库
var socket = io.connect();
socket.on('connect', function() {
console.log('connected');
});
则相反。io没有它的原生刷新功能,所以我不知道为什么你说这在页面刷新时触发。
socket.on('refresh', function (data) { ... } )