我最近在网站上启用了SSL,该网站的Node.js脚本正在使用Socket.io。我尝试将Socket.io设置为在HTTPS上运行,但是在Chrome控制台中,当尝试从套接字获取数据时,它始终报告404()GET错误
客户端代码:
var io = io.connect('https://domain.com:443');
服务器端
var connections=0;
var fs = require('fs');
var https = require('https');
var express = require('express');
var app = express();
var options = {
key: fs.readFileSync('./file.pem'),
cert: fs.readFileSync('./file.crt')
};
var serverPort = 443;
var server = https.createServer(options, app);
var io = require('socket.io')(server);
io.on('connection', function(socket){
connections=connections+1;
myconsolelog('[socket] a user connected. total connections: '+connections);
socket.emit('handshake',1);
socket.emit('online',connections);
request(steamstatusurl+'?pw='+accesspassword, function(error, response, body) {
//myconsolelog('steamstatus: '+body);
io.emit('steamstatus',body);
});
request(contentcreatorsurl+'?pw='+accesspassword, function(error, response, body) {
//myconsolelog('steamstatus: '+body);
io.emit('cc',body);
});
socket.on('disconnect', function(){
connections=connections-1;
myconsolelog('[socket] user disconnected total connections: '+connections);
socket.emit('online',connections);
});
});
server.listen(serverPort, function() {
console.log('server up and running at %s port', serverPort);
});
最佳答案
经过数小时的努力,我发现cloudflare正在拦截套接字并阻止数据通过来,我制作了一个带有灰色云的子域,现在可以正常工作
关于node.js - 使用SSL的Socket.io导致404()错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36120209/