Запрос Websocket иногда не работает после установления соединения - PullRequest
0 голосов
/ 21 января 2019

У меня есть скрипт 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 никогда не выполняется.

Самый важный вопрос для меня: на какой стороне проблема?Клиент или сервер?

Как я могу отладить это и сузить проблему?Это может быть проблема с сетью?Или что-то не так в конфигурации, реализации или с самим сценарием?

...