2011-09-28 76 views
0

我需要設計一個Streaming API,其中每個連接的用戶每個類別可能有不同的數據。通過某些Comet服務器實時傳輸每個用戶

比方說,兩個用戶對體育感興趣(類別)RSS從流API供稿但每個用戶都有這將導致不同的推送數據集在服務器上自己的過濾機制...

通過使用juggernaut,您可以通過類別(通道)流式傳輸數據,但我無法找到一種方法來根據用戶過濾器設置來過濾服務器端每個類別的部分數據。

回答

1

通道通常用於過濾數據,例如一個用於/ SPORT/FOOTBALL/PREMIERLEAGUE/MANU,另一個/ SPORT/FOOTBALL/CHAMPIONSHIP/WESTHAM和/ SPORT/GOLF/USMASTERS。

我只知道一個實時Comet服務器,它提供額外的過濾,雖然訂閱的渠道,這是Caplin System's Liberator。例如(僞):

var subscriber = new Subscriber(); 
var filter = "headline~transfer"; // where '~' means contains 
subscriber.subscribe("/SPORT/FOOTBALL/PREMIERLEAGUE/MANU", filter, function(update) { 
    // handle update 
}); 

上面的代碼將訂閱的頻道,但只發送更新何時更新進來,其中headline字段包含文本transfer

似乎提供此查詢功能的另一種解決方案是pubsub.io。從他們的網站:

// connect from node 
var pubsub = require('pubsub.io').connect('hub.pubsub.io/238258'); 
// or the browser 
var pubsub = pubsubio.connect('hub.pubsub.io/238258'); 

pubsub.subscribe({ 
    hello:{$any:['world','mundo','verden']} 
}, function(doc) { 
    console.log(doc); 
}); 

pubsub.publish({hello:'world'}); 

這種渠道查詢可能是我們開始看到更多的東西。

相關問題