如何在调用服务器方法时处理连接超时

时间:2016-03-31 10:49:39

标签: node.js meteor error-handling connection-timeout

如何使用服务器端方法处理连接超时?我大部分时间都使用meteor用于移动ios / android应用程序(没有webapps,真正的appstore版本),移动用户经常有连接超时。因此,有时他们在选中按钮时没有反馈,因为连接太糟糕了。

e.g。我有一个服务器端 - 方法,可以在集合document中插入一个带有特殊text的新MyTextCollection

所以我的方法看起来像这样

Meteor.methods({
    addTextToMyTextCollection: function(text) {
        //some input checks and error stuff here 
        //if something is wrong It will throw new Error.

        ...

        //everything is fine so insert text into collection
        MyTextCollection.insert({text:text});

        return someResult
    }
});
客户端上的

我会打电话给

Meteor.call("addTextToMyTextCollection", myTextILikeToStore, function(error, result){
  if (error) {
    // I have an error 
  else {
    // I have a result
  }
});

我的问题是我不知道如何在这里处理坏的wifi / 4G等连接,以便为用户提供一些反馈等待(比如它的加载请等待或者你的连接再次破坏再试一次)。当我的Error或我用作参数的permission出现问题时,方法只返回text。否则它将result归还给我。

在方法调用没有返回任何内容之后,是否可以限制客户端上抛出错误的时间?

当我的设备能够调用addTextToMyTextCollection方法但接收结果/错误时连接中断时会发生什么?我如何为我的UI处理这个?

我不喜欢乐观的UI(服务器/客户端上的方法调用),因为它并不总是预期的结果(例如,只询问客户端不知道的服务器信息)

1 个答案:

答案 0 :(得分:1)

我建议通过Meteor.status监控连接状态的全局自动运行块。您可以使用它在连接丢失时显示错误消息。