我已经阅读了一些文章并且知道你需要xhr-polling for socket.io才能在heroku上工作,这就是我到目前为止所做的:
var app = require('http').createServer();
var io = require('socket.io').listen(app, {origins: '*:*'});
io.configure(function () {
io.set("transports", ["xhr-polling"]);
});
io.sockets.on('connection', function(socket) {
console.log("Connected...");
socket.on('message', function(message) {
console.log("Message in:" + message.toString());
}
}
此代码有时会有效,有时会停在console.log("Connected...")
,不会进入socket.on('message', function(message)
。我不知道它为什么只有在它感觉到它时才有效。我也尝试重新启动应用程序,但仍无法正常工作。
答案 0 :(得分:1)
除了将传输设置为xhr-polling
之外,您还需要设置轮询持续时间
io.set("polling duration", 10);