私はシステムのようなドロップボックスに取り組んでおり、サーバー側でファイルが変更されたときにクライアントがどのように通知されるのか疑問に思っています。私の印象では、Dropbox と ubuntu のどちらも HTTP ポート上で動作し、次のように動作します。 1. クライアント マシンでファイルが変更されると、inotify がそれを検出し、クライアントからサーバーへのプッシュを実行します。(私はこの部分を取得します) 2. サーバー上でファイルが変更された場合、単純な一方的な通知 (「同期する時間」というメッセージのみ) がサーバーからクライアントに送信されます。次に、クライアントはサーバーへの同期を開始します。
どの言語でこれを行うかはあまり気にしません。クライアントがどのように連絡を受けるのか疑問に思っています。具体的には、クライアントが独自のローカル IP アドレスを持つファイアウォールの背後にある場合はどうなりますか。サーバーはどのようにそれを見つけますか?
また、このようなことを行うために使用されるメッセージング プロトコルの種類は何ですか? HTTP または SSH 経由でこれを行うことを計画していましたが、それを行うための添付ファイルはありません。