我一直在使用 this gist 在 Heroku 上修改 deployd作为起点:
server.js
的第 20 行尝试为 socket.io 设置传输,如下所示:
server.sockets.manager.settings.transports = ["xhr-polling"];
但是遇到这个错误:
Cannot read property 'settings' of undefined.
从迄今为止的研究来看,这种方法似乎在 socket.io 1.4.5 中已被弃用。但是,如果是这样,我不清楚应该如何解决此设置。
我的问题类似于this one 。但不同之处在于,一旦 socket.io 已经由已部署的实例构建并附加到已部署的实例,我就会寻求更改设置。
最佳答案
在创建时设置它:
var server = deployd({
socketIo: {
options: { transports : ['xhr-polling'] }
}
});
或者,如果你不能这样做,请在运行时更改它(这是一个黑客):
server.sockets.server.eio.transports = ['xhr-polling'];
(为了向后兼容,仍然支持此功能:)
server.sockets.server.set('transports', ['xhr-polling']);
关于node.js - Socket.IO 1.4.x 中的传输设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35674353/