node.js - 无法连接 Socket IO express SSL(http 工作正常)
问题描述
问题:
我已经设置 express 以使用 SSL 运行,它工作得非常好。但是由于某种原因,客户端在尝试连接到 Socket IO 时不断输出 404 错误。
服务器端代码:
var fs = require('fs');
var express = require('express');
var app = express();
var https = require('https');
var io = require('socket.io')(https);
// Certificate
const privateKey = fs.readFileSync('./privkey.pem', 'utf8');
const certificate = fs.readFileSync('./fullchain.pem', 'utf8');
const credentials = {
key: privateKey,
cert: certificate
};
const httpsServer = https.createServer(credentials, app);
app.get('/', function(req, res){
//...
});
httpsServer.listen(3000, function(){
console.log('listening on *:3000');
});
io.on('connection', function(socket) {
//...
});
用于连接的客户端代码:
var socket = io()
错误:
XHRGET https://localhost:3000/socket.io/?EIO=3&transport=polling&t=NRf9_6U [HTTP/1.1 404 Not Found 1ms]
在这里尝试了类似问题的几种解决方案,但都导致了相同的问题。我怀疑这里可能使用了 3000 端口,但我不确定。当我简单地使用 http 时,它立即可以正常工作。
PS:此处替换localhost
为实际域名,以免做广告。
解决方案
推荐阅读
- javascript - PHP 无法正确读取 JSON
- java - Apache camel使用delete=true删除文件的方法是什么,是JDK FileUtil.deleteFile(file)
- c - tcgetsid 中的“tc”是什么意思?
- java - 使用 AES/GCM/NoPadding 在 java 中快速解密消息
- python - 如何在反斜杠后阻止 autopep 缩进行?
- android - Expo Go 和 android 模拟器不会加载我的 react native 项目
- linux - 如何让环境变量在 Bash 上持续存在?
- python - NDlib 独立级联初始化给了我一个错误
- javascript - 在 React 中将数据从一个组件传递到另一个组件的问题
- matlab - MATLAB杠杆()计算