首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建soket.io服务器来保持WS和WSS之间的连接?

如何创建soket.io服务器来保持WS和WSS之间的连接?
EN

Stack Overflow用户
提问于 2016-01-14 11:12:17
回答 1查看 909关注 0票数 2

我有一个socket.io服务器,其代码如下:

代码语言:javascript
复制
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的连接。

EN

回答 1

Stack Overflow用户

发布于 2016-01-14 16:00:55

在客户端代码中,创建套接字连接时,尝试如下:

代码语言:javascript
复制
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
    });
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34788130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档