建立连接后,Websocket请求有时无法使用

时间:2019-01-21 09:10:09

标签: node.js socket.io sails.js nginx-reverse-proxy

我有一个Node.js脚本,该脚本应该通过套接字连接定期访问SailsJS应用程序。客户端和服务器在不同网络上的物理不同机器上运行。 SailsJS应用程序代理在nginx之后。总的来说,这是可行的。但是,在随机时间,连接已建立,但Websocket连接中的第一个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的回调永远不会执行。

对我来说最重要的问题是:问题在哪一边?客户端还是服务器?

我该如何调试并缩小问题范围?可能是网络问题吗?还是配置,实现或脚本本身有问题?

0 个答案:

没有答案