我的流星服務器和遠程mongodb實例之間有一種很慢的連接。我可以以某種方式在客戶端等待並且不註冊訂閱,直到服務器未建立與mongo的連接?如何等待在客戶端直到連接到服務器端的mongo準備好了?
9
A
回答
2
這樣做的一個原始方法是使用Meteor.autorun監聽Meteor.userId()的變化。如果你能得到這個,你會知道你已經連接到MongoDB。如果你沒有處理認證,那麼你可以在服務器端創建一個方法,從MongoDB返回一些東西。當它返回一些東西時,在客戶端的成功,你可以開始所有的訂閱。
+0
是的,這是最有用和最簡單的方法。 –
+0
應該有更好的方法來檢查Mongo的準備情況,但我現在認爲它不在Meteor的優先級列表中。 – HGandhi
2
這樣做的最可靠方法是通過Meteor.call調用。如果您將此作爲同步呼叫(無回叫),則客戶端將等待直到呼叫完成。以下是如何做到這一點異步:
Meteor.call('isEverythingReady', param1,
function(error, result) {
if (error === undefined) {
Meteor.subscribe("mystuff");
Session.set("sess1", "whatever");
} else {
alert("There was an error during startup.");
}
});
然後
if (Meteor.isServer) {
Meteor.methods({
isEverythingReady: function(param1) {
// can you connect to database?
return true;
}
}
}
相關問題
- 1. 連接到服務器http客戶端
- 2. C服務器連接到客戶端
- 3. 瞭解客戶端 - 服務器連接
- 4. 簡單的Java客戶端 - 服務器:客戶端doent連接到服務器
- 5. Android:客戶端還沒有準備好..等待進程在線
- 6. 當客戶端連接到服務器時,Java Socket - 服務器到客戶端的連接重置
- 7. 客戶端連接或服務器端?
- 8. 客戶端如何在Java RMI中連接到服務器?
- 9. Javascript客戶端如何連接到PHp套接字服務器?
- 10. 連接PuTTY客戶端到EC2服務?
- 11. 將客戶端連接到服務器端的方法
- 12. 客戶端到客戶端的連接?
- 13. 在客戶端和服務器端無法使用socket.io連接到服務器
- 14. 直接連接到SQL數據庫或通過客戶端 - 服務器服務
- 15. 您如何知道客戶端何時連接到服務器?
- 16. 轉發服務器端DDP連接集合到客戶端
- 17. 如何爲多個客戶端連接實現服務器等待環路
- 18. 如何讓websocket客戶端等待服務器正在運行?
- 19. 如何阻止1.5 svn客戶端連接到服務器?
- 20. iOS:客戶端如何重新連接到xmpp服務器
- 21. 如何將多個客戶端連接到服務器
- 22. 如何將聊天客戶端連接到遊戲服務器?
- 23. 如何將HotRod客戶端連接到infinispan-cluster-cache服務器?
- 24. 如何將客戶端連接記錄到gRPC服務器?
- 25. 如何將Socket.IO客戶端連接到Sails.js服務器?
- 26. 如何只有客戶端連接到服務器流tweets
- 27. 如何從C#客戶端連接到VB6 Com +服務器
- 28. 如何檢測tcp客戶端連接到c + +服務器
- 29. 如何檢查客戶端是否連接到服務器?
- 30. 如何重新連接從服務器到客戶端
如果你有一個更新,您應該編輯您的問題。 – knownasilya