Socket.IO 中的传输设置 1.4.x

Transport Settings in Socket.IO 1.4.x

我一直在修补 Heroku 上的 deployd,使用 this gist 作为起点:

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 已经由 deployd 实例构建并附加到该实例,我就试图更改设置。

创建时设置:

var server = deployd({
    socketIo: {
        options: { transports : ['xhr-polling'] }
    }
});

或者,如果您不能这样做,请在运行时更改它(这是一个 hack):

server.sockets.server.eio.transports = ['xhr-polling'];

(仍然支持向后兼容:)

server.sockets.server.set('transports', ['xhr-polling']);