0

ブースト中のWebSocketを介してサーバーの「メッセージ」を作成しようとしています。現在、サーバーから大きなメッセージや一連のメッセージを送信できることがよくあります。「送信」を押すと、大量のデータが送信されます。問題は、サーバーが「停止」、「一時停止」などの websocket メッセージでコマンドを受信すると、このコマンドが前のメッセージの終わりまで実行されることです。前のコマンドの実行を停止しようとします。

送信データ間のバッファを読み取ろうとしました。しかし、それは機能しません。async_read_some で注文を受けている人がいるかどうかを確認しようとします。

http://www.codeproject.com/Articles/443660/Building-a-basic-HTML5-client-server-application と HTTP サーバーブースト http://www.boost.org/doc/libsの例に基づいてい ます/1_53_0/doc/html/boost_asio/examples.html

何か考えはありますか?コードを何度か書き直しましたが、最後に表示される新しいリアルタイム コントロールを実行できません..

ありがとうございました

4

3 に答える 3

0

サーバーがすべてのデータを受信するまでにネットワークで大きなメッセージを単一のパケットとして送信すると、サーバーが停止メッセージを受信すると、データの受信が完了するまで制御できなくなる可能性があります。

優先メッセージ キューを実装することをお勧めします。単一の大きなパケットではなく、メッセージをクライアントから小さなチャンクとして送信し、サーバーを組み立てます。stop(cancel) などのメッセージ パケットに高い優先度を与えます。stop(cancel) のような優先度の高いメッセージが存在する場合、サーバー側でメッセージを受信して​​いるときに、残りのメッセージを受け入れる必要はありません。サーバーで websocket 接続を閉じることができます。

詳細については、スレッドChunking WebSocket Transmissionを参照してください。

于 2013-06-04T13:36:38.063 に答える
0

Boost を使用しているので、WebSocket++ (Boost/ASIO ベース) は見ましたか?

于 2013-06-08T09:25:41.097 に答える