1

ノードが相互にメッセージを直接送信できる、小さくて単純な分散 (またはむしろネットワーク化された) Web アプリケーションを構築する必要があります。ただし、これにアプローチする方法がわかりません。ソケットプログラミングとデスクトップUIで簡単な分散アプリを構築する方法は知っていますし、従来のサーバー・クライアントのWebアプリと言うべきシンプルなアプリの作り方も知っていますが、Web技術を使って分散Webアプリを作るには…まあ私は手がかりがありません。

アイデアは、少なくとも 1 つのサーバーと 3 つ以上のクライアント ノードを備えた小規模なシステムを持つことです。クライアント ノードは、相互に、またサーバーともメッセージを交換できる必要があります。クライアントは、交換されたメッセージをブラウザで表示できる必要があります。これを行う方法について、ここからチュートリアル、ガイド、さらには多少関連する質問を読んだことがありますが、それを理解しているだけではありません。どこから始めればいいのかもよくわかりません。

Django と AJAX を使用する必要がありますか? 彼らと一緒に、トラフィックはクライアント間ではなく、サーバーとクライアント間のみであるという考えに再び固執しています。

私はこれで1週間立ち往生しており、かなり必死になっています。何をすべきかのヒントはありますか?どんな助けでも大歓迎です。

ありがとう。

4

3 に答える 3

2

zeroMQを使用できます。

スケーラブルな分散アプリケーションまたは並行アプリケーションでの使用を目的とした高性能の非同期メッセージングライブラリです。メッセージキューを提供しますが、メッセージ指向ミドルウェアとは異なり、ØMQシステムは専用のメッセージブローカーなしで実行できます。ライブラリは、使い慣れたソケットスタイルのAPIを持つように設計されています。

于 2012-09-13T20:30:12.010 に答える
1

基本的に、サーバーが着信クライアント接続をリッスンするように設定する必要があります。次に、クライアントの1つからメッセージを受信すると、接続されているすべてのクライアントにメッセージを送信する必要があります。

難しいのは、各クライアントへのオープンな接続を維持する必要があるということです。DjangoのようなWebアプリケーションフレームワークを使用する場合、これはやや複雑です。

サーバーを自分でプログラムすることもできます。DjangoやAjaxを使用するよりも概念的にクリーンで、優れた学習演習です。PythonSocketServerライブラリを使用します。そのライブラリの例には、チャットクライアントとサーバーがすでに含まれています。

または、 TornadoWebサーバーとWebSocketを使用して試すこともできます。Tornadoは、高性能の非同期Webサーバーです。Websocketは、サーバーからクライアントへの永続的な接続を維持できる、かなり新しいjavascript機能です。

于 2012-09-13T20:12:07.077 に答える
1

asyncoroは、非同期、並行、分散、ネットワーク プログラミング用の Python フレームワークであり、ピアツーピア通信を容易にするためのメッセージ パッシングとチャネルをサポートしています。必要に応じて、ソケットを使用してメッセージを交換することもできます。サンプル ディレクトリにある 'remote_coro_*.py' および 'remote_channel_*.py' ファイルは、開始に役立つはずです。

免責事項: 私は asyncoro を開発しました。

于 2012-09-14T14:31:44.580 に答える