포트 3000에서 실행되는 Socket.io 서버가 있고 로컬 서버와 웹 사이트를 실행할 때 로컬로 모든 것이 올바르게 작동합니다. 하지만 서버에 연결하면 클라이언트가 더 이상 연결할 수 없습니다.Socket.io 클라이언트가 연결되지 않습니다.
프로덕션 서버가 SSL을 통해 실행되므로 SSL을 통해 실행되도록 Socket.io 서버가 필요하다고 가정했습니다. 나는 이것을 다음과 같이 설정했다 :
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);
이것은 여전히 작동하지 않는다. Socket.io에 대한 많은 경험이 없기 때문에 도움을받을 수 있습니다. 또한 웹 서버에서 SSL 인증서를 설정하기 전에 모든 것이 잘 작동했음을 유의하십시오.
클라이언트가 ws://mywebsite.com:3000
에 연결 중입니다. http://
, https://
및 wss://
도 사용해 보았지만 아무 효과가 없습니다.
편집 : 나는 curl
를 통해 요청을 시도하고 나는 다음과 같은 오류 얻을 : 나는 문제가 무엇인지 알아낼 수
curl: (35) gnutls_handshake() failed: The TLS connection was non-properly terminated.