我有的
我有Socket.IO
来自模板的应用程序
const express = require('express');
const app = express();
const http = require('http');
const server = http.createServer(app);
const { Server } = require("socket.io");
const io = new Server(server);
io.on('connection', (socket) => {
console.log('a user connected');
});
server.listen(3000, () => {
console.log('listening on *:3000');
});
我配置了Apache
<VirtualHost *:443>
ServerName ws.domain.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
SSLEngine on
SSLCertificateFile /root/origin.pem
SSLCertificateKeyFile /root/private.key
</VirtualHost>
当我尝试通过邮递员发送请求时,localhost:3000
一切正常
但是当我尝试向我发送请求时,ws.domain.com
我总是得到400 Bad Request
我试过的
- 我试图从文档中配置 Apache这对我没有帮助
- 我尝试使用
Nginx
并从文档中对其进行了配置,但它也对我没有帮助 - 我试图在
Flask
withPySocketIO
和 with上重写服务器flask-socketio
,并得到同样的错误
我已经完全绝望了,不明白问题出在哪里。
PS如果这很重要,我使用CentOS 7
. 我通过 代理域,Cloudflare
并且 websockets 当然是连接的
PSS 我在服务器上的所有其他 HTTP 应用程序都可以正常工作(通过 Apache),问题只出在 websockets
结果证明是非常平淡无奇的。事实证明,前端的版本为 2
Socket.IO
,而服务器上的版本为 4。升级软件包有助于解决问题