我有一个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文档:
粘性会话模块使用其IP地址平衡请求。因此,客户端将始终连接到同一个工作服务器,socket.io将按预期工作,但在多个进程上工作!
但是我想通过WS和WSS实现开放的连接,我不知道是谁更新我的服务器来保持WS和WSS的连接。
发布于 2016-01-14 16:00:55
在客户端代码中,创建套接字连接时,尝试如下:
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
});
}https://stackoverflow.com/questions/34788130
复制相似问题