socket.io no https

16/04/2022

0

Bom dia, esses dias me deparei com um problema com socket.io o mesmo funcionava perfeitamente no localhost servidores local no http, atualmente ao subir sua aplicação para web nos deparamos com um problema, maioria dos sistemas é https, ai que demorei um semana para readequar meu codigo para fazer um chat

novo arquivo servidor.js
dentro da pasta tem que conter o arquivo server.key e server.crt o conteudo desses arquivos vem do servidor web, no caso seu servidor de chat
Utilizei a porta 8080, mas fique a vontade para usar a porta que quiser lembrando que a porta tem que estar disponivel no seu servidor
Meu servidor atual na web é compartilhado.

var fs = require(''''fs'''');
const express = require(''''express'''');
const cron = require(''''node-cron'''');
const apps = express();


var options = {
key: fs.readFileSync(''''server.key''''), //nesta opção inserir os dados da key do seu servidor de chat via node
cert: fs.readFileSync(''''server.crt'''') // nesta opção inserir os dados do crt do seu servdiro de chat via node

};
var app = require(''''https'''').createServer(options, apps);
var io = require(''''socket.io'''')(app, {
cors: {
origin: "*",
methods: ["GET", "POST"],
allowedHeaders: ["my-custom-header"],
credentials: true,

}

});
apps.get(''''/'''', (req, res) =>{
res.sendFile(__dirname+''''/index.html'''')

});

let messages =[];


io.on(''''connection'''', socket => {
console.log(`Socket conectado: ${socket.id}`);

socket.emit(''''previousMessages'''', messages );
socket.on(''''sendMessage'''', (data)=>{

messages.push(data);
socket.broadcast.emit(''''receivedMessage'''', data);
})


});
app.listen(8080, function(){
console.log(''''Servidor ligado para a porta 8080'''' );

})

no Cliente
em Laravel
var socket = io.connect(''''https://seuservidor:porta'''');


Funcionando perfeitamente via HTTPS
Espero ter ajudado a quem procura a utilização do biblioteca socket.io e tenha dificuldade a subir para web
Wellington Santos

Wellington Santos

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar