I am trying to create a live chat. Socket.io and node.js I can’t connect the user to my channel. https://domen.com:8005/socket.io/?EIO=3&transport=polling&t=NYHmcgH :failed
Here is my server.js
var app = require('express')();
var https = require('https').Server(app);
var io = require('socket.io')(https);
var Redis = require('ioredis');
var redis = new Redis();
var users = [];
https.listen(8005, function () {
    console.log('Listening to port 8005');
});
io.on('connection', function (socket) {
    socket.on("user_connected", function (user_id) {
        console.log("user connected " + user_id);
        // users[user_id] = socket.id;
        // io.emit('updateUserStatus', users);
        // console.log("user connected "+ user_id);
    });
and here is my blade template
    <script>
            $(function () {
                let user_id = "{{ auth()->user()->id }}";
                console.log(user_id);
                let ip_address = 'domen.com';
                let socket_port = '8005';
                let socket = io(ip_address + ':' + socket_port);
            });
    
      socket.on('connect', function () {
                    socket.emit('user_connected', user_id)
                });
</script>
Advertisement
Answer
express with https needs some keys
var https = require('https')
var app = express()
https.createServer({
  key: fs.readFileSync('server.key'),
  cert: fs.readFileSync('server.cert')
}, app)
.listen(8005, function () {
  console.log('Example app listening on port 8005! Go to https://domen.com:3000/')
})
i think you should try first with http, if your code works well then you can upgrade to https
var io = require('socket.io')(http);
http.listen(8005, function () {
    console.log('Listening to port 8005');
});
in client side :
let ip_address = 'http://domen.com';