Reputation: 135
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>
Upvotes: 0
Views: 934
Reputation: 78
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';
Upvotes: 1