我正在使用类似系统的保管箱,我想知道当服务器端的文件更改时客户端如何得到通知。我的印象是,Dropbox 和 ubuntu 都通过 HTTP 端口运行,工作方式如下: 1. 如果客户端计算机上的文件发生更改,inotify 会检测到它并执行从客户端到服务器的推送。(我得到这部分) 2. 如果服务器上的文件发生更改,则会从服务器向客户端发送一个简单的主动通知(只是一条消息说“同步时间”)。然后客户端启动到服务器的同步。
我真的不在乎我用哪种语言来做这件事。我只是想知道如何联系客户。具体来说,如果客户端位于具有自己本地 IP 地址的防火墙后面怎么办。服务器如何定位它?
另外,什么样的消息传递协议会被用来做这样的事情?我计划通过 HTTP 或 SSH 执行此操作,但我没有附件这样做。