Sails.io.js:检查Socket连接是否建立

时间:2015-02-03 11:28:15

标签: angularjs node.js socket.io sails.js

我尝试将sails.io.js与nodewebkit

一起使用

我使用以下行设置我的风帆服务器的网址:

io.sails.url = "http://localhost:1337";

我想知道如果socket连接成功与否,我可以在有任何网络问题时提醒用户。

我目前正在使用1000毫秒的timeout来检查是否已建立套接字连接:

$timeout(function () {
  if(io.socket.socket.connected)
     socketConnected = true;
  else
     socketConnected = false;
}, 1000);    

如果我不使用超时,它会异步,并且首先执行上面的函数而不是套接字连接。

如果不使用timeout,我是否可以知道是否建立套接字连接。有任何想法吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以使用connect事件来确定何时建立套接字连接:

io.socket.on('connect', function() {...});

但是你仍然需要暂停,因为你正在检查连接是否......超时!

var socketTimeout = $timeout(function () {alert('socket timed out!');}, 5000);
io.socket.on('connect', function() {$timeout.cancel(socketTimeout);})