我有一個聊天服務器。在客戶訂閱後,我想查看數據庫以查看他們訂閱的聊天室是否有任何歷史記錄。node.js,faye(bayeux) - 訂閱事件後
問題是,我只能捕捉擴展中的「訂閱」事件,它必須做「返回回調(消息)」;返回消息。如果我在這裏做歷史事情,沒有什麼會發布給客戶,因爲客戶實際上並未訂閱。
有什麼方法可以知道客戶端準備好了嗎?或者是成功訂閱時發生的一些事件?
謝謝!
我有一個聊天服務器。在客戶訂閱後,我想查看數據庫以查看他們訂閱的聊天室是否有任何歷史記錄。node.js,faye(bayeux) - 訂閱事件後
問題是,我只能捕捉擴展中的「訂閱」事件,它必須做「返回回調(消息)」;返回消息。如果我在這裏做歷史事情,沒有什麼會發布給客戶,因爲客戶實際上並未訂閱。
有什麼方法可以知道客戶端準備好了嗎?或者是成功訂閱時發生的一些事件?
謝謝!
你可以當你失敗訂閱創建,當你成功認購即會觸發認購及其他後附加一個回調:
var http = require('http');
var faye = require('faye');
var faye_server = new faye.NodeAdapter({mount: '/faye', timeout: 120});
faye_server.listen(8089);
var subscription = faye_server.getClient().subscribe('/testing', function(message){console.log(message);});
subscription.callback(function(){console.log('Subscription successful and ready to use!');});
subscription.errback(function(){console.log('ERROR: Subscription failed!');});
儘管它埋位時,這對王菲炫魅記錄。 。 。 http://faye.jcoglan.com/browser/subscribing.html
這適用於我測試過的節點服務器,節點客戶端或瀏覽器客戶端。另外,我一直在做的事情是確保我的客戶端正常運行,這是:創建客戶端,然後嘗試訂閱垃圾信道名稱。一旦訂閱出現,失敗或超時(在其周圍放置5秒鐘),我就會在我的客戶打開成功之後採取這一行動。這是一個關於方法的方法,但它對我來說工作得非常好,通過使用回調函數和errback,faye使得它非常乾淨,就像在我之前的例子中一樣。
現在,這一切都在客戶端,但它在服務器端變得更容易:http://faye.jcoglan.com/node/monitoring.html。只需在這裏使用擴展名並查找來自特定客戶端的訂閱事件,您就可以輕鬆前往。
希望可以幫到