我需要设计一个流API,其中每个连接的用户可能有每个类别不同的数据。
假设两个用户对来自流api的体育(类别) rss feeds感兴趣,但每个用户在服务器上都有自己的过滤机制,这会导致不同的推送数据集……
通过使用juggernaut,您可以通过类别(通道)流式传输数据,但我找不到一种方法来根据用户过滤设置在服务器端过滤每个类别的某些部分数据。
发布于 2011-09-29 18:13:10
通道通常用于过滤数据,即一个用于/SPORT/FOOTBALL/PREMIERLEAGUE/MANU,另一个用于/SPORT/FOOTBALL/ Channels /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'});这种渠道查询很可能是我们开始看到的更多的东西。
https://stackoverflow.com/questions/7590419
复制相似问题