2017-10-20 13 views
0

私はソケットを介してクライアントと通信するためのカスタムプロトコルを使用するチャットサーバを構築しています。クライアントは特定の文字列をサーバーに送信し、サーバーはこれらの非標準のメッセージに基づいて適切なアクションを実行する必要があります。このプロトコルを変更することはできませんし、基盤となるクライアントコードにアクセスすることもできません。socket.ioサーバが非ソケットのクライアントと通信できるか

私の質問は、ソケット・アクティビティをクライアントがどのように処理しているのかわからないのですが、node.js socket.ioパッケージを使用してサーバー・ソケット通信を強化できますか?ソケットを介して何かをプッシュするたびに、socket.ioドキュメントを読むことで、 'イベント'が各アクションに関連付けられているので、私は尋ねています。

この 'イベント'が添付されたサーバーから非常に正確なメッセージをクライアントに送信することはできますか?私はwebsocketsパッケージを使用する方が良いですか?

+0

あなたが求めているのは特定の技術ではないことは分かっていますが、WebRTCソリューションを調べることもできます。node.jsチャットサーバチュートリアルもあります。 – theGleep

答えて

1

socket.ioサーバはnon-socket.ioクライアントと通信できる

号A socket.ioサーバは、接続開始のためのWebSocketプロトコルと上socket.io形式の両方を必要としますその。したがって、socket.ioサーバーはsocket.ioクライアントとしか通信できません。またその逆もあります。

チャットクライアントがカスタムプロトコルを使用している場合は、カスタムプロトコル(それが何であれ)を話すTCPサーバを実装する必要があります。

クライアントを変更できる場合は、socket.ioクライアントを使用するように変更してから、socket.io経由でチャットメッセージを送信して、socket.ioサーバーがこれらのメッセージを受信できるようにします。

クライアントは特定の文字列をサーバーに送信し、サーバーはこれらの非標準メッセージに基づいて適切な処置を実行する必要があります。このプロトコルを変更することはできませんし、基盤となるクライアントコードにアクセスすることもできません。

次に、クライアント用の基本プロトコルが何であれ、カスタムクライアントプロトコルを使用するサーバーを実装する必要があります。その周りに他の方法はありません。

ソケットを介して何かをプッシュするたびに、socket.ioドキュメントを読むと、「イベント」が各アクションに関連付けられているので、私は尋ねています。

これはsocket.ioレイヤーの仕組みです。メッセージと(オプションの)データを送信します。これは、一般的なdataメッセージを宣言し、もう一方の側でdataメッセージを受信するだけで、データを送信するために常に使用できます。しかし、これは、クライアントとサーバーの両方をこのように動作させるように変更できることを前提としています。 socket.ioプロトコルを使用するようにクライアントを変更できない場合は、socket.ioを使用することはできません。

+0

ありがとう、非常に決定的な答え。自分のプロトコルで純粋にTCPベースのサーバーを実装するために使用できるライブラリの方向で私を指摘できますか?一見すると「ネット」と思っている –

関連する問題