У меня есть скрипт Node.js, который должен регулярно обращаться к приложению SailsJS через сокет-соединение.Клиент и сервер работают на физически разных машинах в разных сетях.Приложение SailsJS проксируется за nginx.Это работает в целом.Однако в случайное время соединение устанавливается, но первый post
запрос в соединении с веб-сокетом никогда не достигает своего места назначения.
Код выглядит в основном так:
var socketIOClient = require('socket.io-client');
var sailsIOClient = require('sails.io.js');
var io = sailsIOClient(socketIOClient);
io.sails.url = 'https://foo.foo:443';
io.sails.rejectUnauthorized = false;
io.socket.on('connect', function() {
console.log("Connected!")
io.socket.post('/someroute', { someOptions: "foo" } ,
function(data) {
console.log(data);
});
});
io.socket.on('disconnect', function(){
console.log("Disconnected!");
});
io.socket.on('connect_error',function () {
console.log("connect_error!");
});
В случаепосле сбоя просто ничего не происходит после console.log("Connected!")
.В журналах nginx ничего не появляется (в отличие от успешных случаев), обратный вызов io.socket.post
никогда не выполняется.
Самый важный вопрос для меня: на какой стороне проблема?Клиент или сервер?
Как я могу отладить это и сузить проблему?Это может быть проблема с сетью?Или что-то не так в конфигурации, реализации или с самим сценарием?