Reddit Endpoint上的Websocket检测新帖子

时间:2016-11-14 12:12:12

标签: javascript node.js rest websocket socket.io

我有一个JavaScript脚本来检查某个subreddit中是否有新帖子。 Reddit magicaly在每个链接上提供JSON端点。在这种情况下,我有以下端点:

https://www.reddit.com/r/webdev/new.json?limit=1

然后我使用node.js的请求模块来获取我需要的specefic数据,例如domain,selftext,author和domain。然而,每发布一个新帖子时,这都会发生变化,因此我会使用setInterval函数每隔几秒检查一个新帖子是否被释放(就像某种轮询一样)。我将每个帖子的唯一ID保存到mongo以防止双重发布,因为这会假设每个帖子在每次请求时都是新的。

所以结构类似于:

setInterval(function () {
    request({
        uri: redditEndpoint,
        json: true
    }, function (error, response, body) {}) });

// I then save the data sent to mongo as unique to prevent double posting

// I consume the data here

}, 1000);

我想摆脱这种方法并转移到websockets。但是我不确定如何在这样的端点上正确实现websocket,最好是使用socket.io

1 个答案:

答案 0 :(得分:0)

该websocket端点需要由服务器提供 - 在这种情况下来自reddit服务器。您无法创建与不提供websocket支持的随机服务器的websocket连接。

您唯一能做的就是构建一个代理服务器,它会轮询reddit服务器以查找新事件(比如您当前正在做的事情),然后为其他客户端提供websocket端点。