3

私は現在、インフラストラクチャが次のように見える必要があるプロジェクトに取り組んでいます。

[クライアント 1] ----------- [サーバー] ----------- [クライアント 2]

クライアント 1 は、サーバー上でイベントをトリガーするボタンをアクティブにする必要があります。次に、クライアント 2 はその特定のイベントをリッスンして値を表示する必要があります。

たとえば、クライアント 1 はタブレットで、ID が 1 の単純なボタンがあるとします。

クライアント 2 で表示できるようにする必要があります。テレビが Linux (Raspberry Pi) マシンに接続されていて、タブレットでボタン ID 1 が押されたとします。

クライアント 1 とクライアント 2 の表示には HTML のみを使用し、サーバーとクライアント間の通信には JavaScript を使用し、サーバー コアとして NodeJS を使用して、そのアーキテクチャをどのように実装しますか?

どんなアイデアでも歓迎します。私はそれを実装しようとしましたが、私のロジックはある時点で失敗しました! :)

4

1 に答える 1

3

あなたが説明しているのはリアルタイム機能のようです。あなたが説明していることは本質的にチャットシステムに似ていますが、もう少し細かく構造化されています. それを提示するために使用するテクノロジーの問題ではなく、クライアントとサーバー間の通信に使用するプロトコルの問題です。

通常、HTTP はリアルタイム アプリケーションにはあまり適していません。あなたが抱えている問題を解決しようとする技術がWebSocketsです。NodeJS は WebSocket をサポートしており、新しいブラウザーもサポートしているため、さまざまなライブラリと実装を探すことができます。WebSockets プロトコルを使用する場合、クライアントで使用するツールはサーバーで使用するツールに依存し、その逆も同様であることに注意してください。

例としてSocket.ioを見ることができます。さらなる指針については、この質問を見ることができます: Node.js で使用する websocket ライブラリはどれですか?

多くのライブラリは、WebSockets を介して 1 つの追加の抽象化レイヤーを提供し、基になるプロトコルを気にせずにリアルタイム機能を実装できるようにします。コメントの 1 つで言及されている Meteor フレームワークはそのようなものです。実行内容に応じて、内部で WebSocket と HTTP を使用します。

それはすべて、あなたがどれだけコントロールしたいかの問題です。どれだけ自分でやりたいか、どれだけ第三者にやってもらいたいかを知る必要があります。

于 2013-10-23T13:17:50.617 に答える