私は WebSocket をいじっていますが、基本的な WebSocket 接続を行う Tornado サーバーを簡単に実行できることに非常に満足しています。私は今日まで Tornado を使ったことがありません。見たものは気に入っていますが、その使い方に関していくつか質問があります。
主に、私は WebSocket を使用して、2 つ以上のクライアント マシン間でオーバーヘッドの少ない通信を行えるようにしています。(会話の目的で、チャット クライアントとだけ言いましょう)明らかに、複数のマシンからサーバーに接続でき、それらすべてがメッセージをサーバーにプッシュし、サーバーが応答できます。これは素晴らしいことです。しかし、それは標準の AJAX リクエストよりも優れているわけではありません。永続的な接続がある場合は、クライアントにもデータをプッシュできるようにしたいと考えています。最も単純なシナリオは、ユーザー 1 がサーバーにメッセージを投稿し、それを受信するとすぐにサーバーがそれをユーザー 2 にプッシュするというものです。
では、それを達成するための良い方法は何でしょうか? Tornado で確認できる限り、メッセージをどこかのデータストアに配置し、他のすべての接続で新しい情報をポーリングする以外に、接続間で通信する方法はありません。ただし、その時点で実際に行っていることは、ポーリング プロセスをクライアントからサーバーに移動することだけなので、これは非常に扱いにくいと思います。
もちろん、私はここで完全に間違ったツリーを吠えているかもしれません. Tornado がこの仕事に適したツールではないというのは確かにもっともなことです。