我有一个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
答案 0 :(得分:0)
该websocket端点需要由服务器提供 - 在这种情况下来自reddit服务器。您无法创建与不提供websocket支持的随机服务器的websocket连接。
您唯一能做的就是构建一个代理服务器,它会轮询reddit服务器以查找新事件(比如您当前正在做的事情),然后为其他客户端提供websocket端点。