如何创build将保持WS和WSS连接的soket.io服务器?

我有一个像这样的代码的socket.io服务器:

 var sticky = require('sticky-session'); sticky(function() { var app = require('http').createServer(handler); function handler (req, res) { res.writeHead(200, { "Access-Control-Allow-Origin": "*" }); return res.end('pong'); } var io = require('socket.io')(app, {'origins' : '*' + config.application.hostname + '*:*'}); const newmessagesConnections = io.of('/new-messages'); newmessagesConnections.on('connection', function (client) { ..... }); const callingsConnections = io.of('/callings') callingsConnections.on('connection', function (client) { ..... }); return app; }).listen(config.application.port, function() { console.log('server started on ' + config.application.port + 'port'); }); 

它适用于WS协议,但我也想支持WSS协议。 当我使用粘滞会话时,是否可以同时使用WS和WSS协议?

来自sticky-session doc:

粘滞会话模块使用其IP地址来平衡请求。 因此,客户端将始终连接到同一个工作服务器,并且socket.io将按预期工作,但在多个进程中!

但我想要做的可能性,通过WS和WSS开放连接,我不明白谁更新我的服务器,以保持WS和WSS连接。

在你的客户端代码中,当你创build套接字连接时,试试这个:

 if(location.protocol==='https:'){ socket = io.connect( 'wss://' + location.hostname + '/', { //options here like: 'forceNew':true }); } else{ socket = io.connect( 'ws://' + location.hostname + '/', { //options here like: 'forceNew':true }); }