Node.js 如何在调用服务器方法时处理连接超时
如何使用服务器端方法处理连接超时?我大部分时间使用meteor来开发移动ios/android应用程序(没有网络应用程序,真正的appstore版本),移动用户经常会出现连接超时。所以有时候他们在点击按钮时没有得到反馈,因为连接太差了 e、 g.我有一个服务器端-only方法,可以在集合Node.js 如何在调用服务器方法时处理连接超时,node.js,meteor,error-handling,connection-timeout,Node.js,Meteor,Error Handling,Connection Timeout,如何使用服务器端方法处理连接超时?我大部分时间使用meteor来开发移动ios/android应用程序(没有网络应用程序,真正的appstore版本),移动用户经常会出现连接超时。所以有时候他们在点击按钮时没有得到反馈,因为连接太差了 e、 g.我有一个服务器端-only方法,可以在集合MyTextCollection 所以我的方法看起来像这样 Meteor.methods({ addTextToMyTextCollection: function(text) { //s
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等连接在这里给一些反馈,让用户等待(如加载请等待或您的连接断开重试)。当我的权限
或我用作参数的文本出现问题时,该方法只是返回一个错误
。否则它将返回结果
在方法调用未返回任何内容后,是否可以限制客户端抛出错误的时间
当我的设备能够调用addTextToMyTextCollection
方法,但收到结果/错误时连接中断时,会发生什么情况?我如何为我的UI处理这个问题
我不喜欢乐观的UI(服务器/客户端的方法调用),因为它并不总是预期的结果(例如,询问客户端无法知道的仅服务器的信息)我建议使用一个全局自动运行块,通过监视连接状态。当连接丢失时,您可以使用它来显示错误消息。这是我现在正在做的,但这并不能解决连接速度慢的问题。连接状态标志(例如,存储在会话变量中)只是说:好的,我已连接到服务器,我正在连接,或者连接已断开。这只是一个“是”或“不是”的解决方案,但不是“该死的,你的连接太慢了”-修复