gpt4 book ai didi

node.js - Nodejs https socket.io

转载 作者:太空宇宙 更新时间:2023-11-04 02:12:47 26 4
gpt4 key购买 nike

这是我的故事:

- 我有一个带有 SSL 的网站:https://domain.com
- 我想进行实时聊天,所以我用node.js升级了linux服务器
- 对于Linux服务器,我制作了一个自签名证书

这是我的服务器代码(不是全部 ofc,只是基础代码):

var options = {
key: fs.readFileSync("key.pem"),
cert: fs.readFileSync("cert.pem"),
requestCert: true
};

var app = express(options);
var server = https.createServer(app);
var io = socket.listen(server).listen(80);

io.on('connection', function (socket) {
socket.emit('connectedToServer', { conncted: true });
});

这是我的客户端代码:

var socket = io.connect('https://XXX.XXX.XXX.XX', {secure: true, port:80});
socket.on('connectedToServer', function (data) {
socket.emit('firstTimeConnected', id);
});

好的!我在客户端出现错误:net::ERR_CONNECTION_REFUSED(如果我使用 http 运行客户端,- WS 可以工作,但收到有关“混合内容”的警报,该内容被浏览器阻止)。
真的感谢4你的帮助!

最佳答案

你的代码看起来很奇怪。我不确定它是否如您所想的那样。另外我不确定为什么你要监听端口 80 而不是默认的 443。你想始终使用像 https://www.examle.com:80/ 这样的 URL吗? ?

尝试这样的事情:

var options = {
key: fs.readFileSync("key.pem"),
cert: fs.readFileSync("cert.pem"),
requestCert: true
};
var app = require('express')();
var server = require('https').Server(options, app);
var io = require('socket.io')(server);

现在在服务器上调用listen:

server.listen(...);

并使用默认端口(HTTP 为 80,HTTPS 为 443),除非您想在每个 URL 中显式包含该端口。

关于node.js - Nodejs https socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41448487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com