首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Socket.IO & SSL

Socket.IO & SSL
EN

Stack Overflow用户
提问于 2016-12-07 15:35:17
回答 1查看 117关注 0票数 1

我激活了HTTPS,Socket.IO返回了错误:

net::ERR_CONNECTION_REFUSED

Server.js:

代码语言:javascript
复制
var fs = require('fs');
var https = require('https');

var options = {
    key: fs.readFileSync(‘./cert.pem'),
    cert: fs.readFileSync(‘./cert.crt')
};

var express = require('express'),
    app = express(),
    server = https.createServer(options, app);
    var io = require('socket.io').listen(server);
    server.listen(8080);

前线:

代码语言:javascript
复制
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>

var socket = io.connect('IP:8080');

如果失活的HTTPS,Socket.IO有效.

EN

回答 1

Stack Overflow用户

发布于 2017-02-22 22:49:43

两种理论:

( 1)你是在远程主持这个节目吗?如果是,则可能没有与本地服务器相同的端口号。例如,在Heroku托管的节点应用程序上,您可以通过以下方式访问端口号:

代码语言:javascript
复制
process.env.PORT

所以你可以:

代码语言:javascript
复制
server.listen(process.env.PORT || 8080);

2)也可能是CORS问题。您将需要包括访问控制-允许源标头.在设置'app‘和调用’server.listen(.)‘之间包括一个中间件实用程序,如下所示:

代码语言:javascript
复制
app.use(function (req, res, next) {
    res.header('Access-Control-Allow-Origin', req.headers.origin);
    res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    res.header('Access-Control-Allow-Credentials', 'true');
    res.header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type');

    if ('OPTIONS' == req.method) {
        res.writeHead(200);
        res.end();
    } else {
        next();
    }
});

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41021449

复制
相关文章

相似问题

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