使用 socket.io 跟踪外部站点?

Track external site with socket.io?

有什么方法可以使用 socket.io 跟踪外部站点吗?因此,只要网站发生变化,它就会自动向我的服务器发送一个事件?

例如:

socket.on("newconnectionfromxxxxxxxxxxxxxxx", function (websiteChange)  {  //websiteChange would be the contents of the updated website.
});

抱歉,如果这个问题很明显,因为我在网上找不到任何东西。

编辑:我要跟踪的站点是一个 JSON 文件。

socket.io 在两个合作站点之间工作。因此,只有当您要监视的站点特别支持传入 socket.io 连接并且它支持在您感兴趣的特定文件发生更改时通过该连接发送通知消息时,它才会在这里对您有所帮助。

如果您要监控的站点没有这种特定的监控功能,那么您最好的办法就是定期下载感兴趣的文件,自己看看它是否发生了变化。

由于目前并非所有网站都完全 event-driven/reactive,因此您必须定期轮询您的网站目标并查看 JSON 文件中的差异。有许多 "filewatcher" 程序(C#、Java 等)挂接到本机 OS 文件系统事件机制;您可以更改其中一个程序来触发 WS 或 HTTP 事件到您的服务器。有一个 NodeJS 包装器可能对您有帮助:https://github.com/paulmillr/chokidar

真可惜 Unix "watch" 实用程序没有在检测到差异时触发事件的选项,而不是在视觉上突出显示更改。如果它有一个“-difftrigger 'some-command'”选项,那就太酷了...