Уже несколько недель я пытаюсь реализовать свою функциональность websocket на моем производственном (ubuntu) сервере (nginx). Мои веб-сокеты работают локально, но я получаю ошибки при работе.
Мой socket.js выглядит так:
var fs = require('fs');
var options = {
type: "local",
key: fs.readFileSync("/etc/nginx/ssl/sub.domain.com/467605/server.key"),
cert: fs.readFileSync("/etc/nginx/ssl/sub.domain.com/467605/server.crt")
};
if (options.type == 'dev') {
var app = require('http').createServer(handler);
} else {
var app = require('http').createServer(options,handler);
}
var io = require('socket.io')(app);
var Redis = require('ioredis');
var redis = new Redis();
function handler(req, res) {
res.writeHead(200);
res.end('');
}
io.on('connection', function(socket) {});
// Redis UserSignedUp Channel, Channel if user signs up
var redisUserSignedUp = new Redis();
redisUserSignedUp.subscribe('signed-up-channel');
redisUserSignedUp.on('message', function(channel, message) {
message = JSON.parse(message);
io.emit(channel + ':' + message.event, message.data);
});
// run server on port 3333
app.listen(3333, function () {
console.log('Server running!');
});
My Event.js выглядит так:
const socket = io('sub.domain.com:3333', {
secure: true
});
// ... works locally
socket.on('signed-in-channel:App\\Events\\UserSignedIn', (data) => {
this.signedInUsers = data.username;
this.$toasted.info('Success: ' + data.username, {
theme: "primary",
duration: 10000
});
});
Если я сделаю это в моем Event.js:
const socket = io('sub.domain.com:3333', { secure: true });
Я получаю эту ошибку:
https://sub.domain.com:3000/socket.io/?EIO=3&transport=polling&t=MdZoLnn
Net :: ERR_SSL_PROTOCOL_ERROR
Где, как будто я слежу за сервером ip вот так:
const socket = io('123.123.123.123:3333', { secure: true });
Я получаю эту ошибку:
https://123.123.123.123:3333/socket.io/?EIO=3&transport=polling&t=MdZpRnE
Net :: ERR_CONNECTION_TIMED_OUT
На сайте есть зашифрованный ssl-сертификат, далее веб-сервер - nginx, а os - ubuntu. В моем локальном окне (wamp) он работает, начиная с узла socket.js.