【发布时间】:2019-11-27 05:54:27
【问题描述】:
failed: Error during WebSocket handshake: Unexpected response code: 502
我有 2 个子域指向同一个服务器,一个用于响应应用程序,另一个用于提供套接字 IO 连接的 API
我在浏览器控制台中不断收到此错误
我在我的 apache 日志中发现了这些错误:
AH00898: Error reading from remote server returned by /socket.io/
AH01102: error reading status line from remote server 0.0.0.0:3040
这是我的apache 配置,我正在使用ProxyPass:
ProxyPreserveHost On
ProxyPass / http://0.0.0.0:3040/
ProxyPassReverse / http://0.0.0.0:3040/
在我的前端,我使用socket.io-client 连接:
let socket = io(process.env.GATSBY_CHATBOT_SOCKET_URL, {transports: ['websocket', 'xhr-polling']});
我的nodejs 服务器使用socket.io:
const https = require('https');
let options = {
key: fs.readFileSync(process.env.PRIV_KEY_PATH),
cert: fs.readFileSync(process.env.SSL_CERTIFICATE_PATH),
passphrase: process.env.PASSPHRASE,
};
let server = https.createServer(options, app).listen(process.env.PORT, function () {
console.log('listening on https port: ' + process.env.PORT);
});
let ioOptions = {
pingInterval: 10000,
pingTimeout: 60000,
origins: process.env.NODE_ENV === 'local' ? null : '*.mydomain.com',
transports: ['websocket', 'xhr-polling'],
};
let io = new require('socket.io')(server, ioOptions);
我在这里缺少什么?为什么我的 websocket 握手不能正常工作?
【问题讨论】:
-
您是否设置了
apache来升级连接? -
@EslamAbuHugair 升级连接是什么意思?
标签: node.js sockets socket.io apache2