0

この AutobahnPython サーバーを正常に稼働させています。 https://github.com/tavendo/AutobahnPython/blob/master/examples/websocket/streaming/streaming_server.py

Web カムのビデオとオーディオをキャプチャするための HTML5 フロント エンドを接続したいと考えています。HTML5 で作成したばかりのソケットを介して、HTML5 Blob を実行中の python ソケット サーバーに送信するにはどうすればよいですか?

sendMessageですか? https://autobahnpython.readthedocs.org/en/latest/websocketbase.html#autobahn.websocket.WebSocketProtocol.sendMessage

4

1 に答える 1

2

準備をして、やりたいことを正しく行う (つまり、フロー制御を行う) ことは、高度なトピックです。私はあなたにいくつかのヒントを与えようとします。これを読むことにも興味があるかもしれません。

  1. WebSocketProtocol.sendMessageAutobahnPython API の一部です。正確には、メッセージベースの基本 APIの一部です。上記のストリーミングサーバーは受信に高度なAPIを使用するのに対し、送信には基本的なAPIを使用します(送信データが小さく、フロー制御の必要がないため)

  2. さて、あなたの場合、Web カメラは「大量データ」プロデューサーです。JSからサーバーへの送信をフロー制御する必要があります。cam からデータを取得するのと同じ速さで JS から WebSocket メッセージを送信すると、アップストリーム接続が追いつかなくなり、ブラウザのメモリが不足する可能性があります。bufferedAmountJS WebSocket API の一部についてお読みください。

  3. サーバーに流れ込むデータだけを消費したい場合は、上記の AutobahnPython ストリーミング サーバーの例が出発点として適してます。他の WebSocket フレームワークは、メッセージを提供するまで、最初に完全なメッセージをバッファリングします。

  4. サーバーによって受信されたデータを他の接続されたクライアントに再配布する場合は、サーバーの発信レッグでもフロー制御が必要になります。そして、送信用の高度な APIも必要になります。リファレンスまたはストリーミング (プロデューサー) クライアントの例を参照してください。サーバー内で実行するようにコードを調整できます。

何よりもあなたにとって意味をなさない場合..それは重要なことです。Autobahn フォーラムへの最初のリンクを読んでみてください。また、フロー制御についても詳しく説明しています。また、JS WebSocket API には、アプリ レベルで独自のスキームを発明するためにフォールバックすることなく、この種のフロー制御を行うための限られた機構しかないため、自明ではありません。良い。とにかく、それが少し役立つことを願っています。

于 2013-11-12T23:24:29.163 に答える