Ich habe einen Socket.io-Server auf Port 3000 ausgeführt und wenn es (und die Website/Client) lokal ausgeführt wird, funktioniert alles einwandfrei. Aber wenn ich es auf den Server schiebe, kann der Client keine Verbindung mehr herstellen.Socket.io-Client verbindet nicht
Der Produktionsserver läuft über SSL, daher nahm ich an, dass der Socket.io-Server auch über SSL ausgeführt werden muss. Ich habe es wie folgt eingerichtet:
var app = express();
var fs = require('fs');
var is_production = process.env.NODE_ENV === 'production';
if(is_production){
var options = {
key: fs.readFileSync('/etc/letsencrypt/live/mywebsite.com/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/mywebsite.com/cert.pem'),
requestCert: true
};
var server = require('https').createServer(options, app);
}else{
var server = require('http').createServer(app);
}
var io = require('socket.io')(server);
server.listen(3000);
Dies funktioniert immer noch nicht. Ich habe nicht viel Erfahrung mit Socket.io, so würde jede Hilfe geschätzt werden. Beachten Sie auch, dass alles funktioniert hat, bevor ich ein SSL-Zertifikat auf dem Webserver eingerichtet habe.
Der Client verbindet sich mit ws://mywebsite.com:3000
. Ich habe versucht mit http://
, https://
und wss://
auch, aber nichts funktioniert.
EDIT: Ich habe versucht, eine Anfrage durch curl
machen und ich erhalte den folgenden Fehler:
curl: (35) gnutls_handshake() failed: The TLS connection was non-properly terminated.