問題タブ [signaling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3998 参照

google-app-engine - webRTC ビデオチャット用のチャンネルを作成する

私は HTML5rocks のwebRTC ガイドに従っており、説明どおりに Javascript をセットアップしていますが、このガイドでは channelToken、roomKey、およびユーザー ID を受け取る方法が明確ではありません。ガイドさん曰く、

「room 変数や openChannel() で使用されるトークンなど、JavaScript で使用される値は、Google App Engine アプリ自体によって提供されることに注意してください。値が何であるかを確認するには、リポジトリのindex.htmlテンプレートを見てください。追加した。"

残念ながら、提供されたリンクは役に立たず、このプロセスの最も重要なステップに関する情報がほとんどありません。このガイドでは、Google App Engine が必要なコンポーネントであるかどうかについて明確ではなく、なぜそうすべきなのかがわかりません。より有用な情報源を見つけようとして Web を検索しましたが、うまくいきませんでした。webRTC Demo(https://apprtc.appspot[dot]com) も見てみましたが、こちらもチャネル情報がサーバー側で生成されていることがわかりました。単純な http リクエストを Google サーバーに送信して、そこから実行できるようにすればよいと思います。私の問題に関する情報は大歓迎です。

0 投票する
3 に答える
3229 参照

webrtc - WebRTC Firefox から Chrome へのビデオ通話が機能しない

私の WebRTC アプリは、同じブラウザーを 2 つ接続すると正常に動作しますが、組み合わせを試してみると、お互いのシグナル メッセージに応答しません。おそらく言及する価値のあることは、TURNを実装していないことですが、それがなぜ違いを生むのかわかりません。

エラーがどこにあるかについてはあまり手がかりがないので、読みやすくするために要求に応じてコードを追加します。

0 投票する
3 に答える
2027 参照

c++ - スレッド間のシグナリング

アプリケーションの設計

プロデューサー スレッド、複数のキュー (実行時に作成)、およびコンシューマー スレッドを持つ C++ アプリケーションがあります。

プロデューサ スレッドは、Tcp/Ip 経由でデータを取得し、それぞれのキューに入れます (たとえば、データがタイプ A で、キュー A に入れられる場合)。

コンシューマ スレッドは現在、1 から n までのキューをループして、各キューからのデータを処理します。

要件に従って、最後に更新された、または最も更新されていないキューを追跡する必要はありません。いずれかのキューが更新されている限り、コンシューマーは 1 ~ n 個のキューを処理する必要があります。

キューのサイズのいずれかが定義された制限を超える場合、プロデューサー スレッドは新しいアイテムを挿入する前に最初のアイテムをポップします (キュー サイズを管理するため)。

スレッド間のリソース同期とシグナリング:

この実装では、リスナーからのデータを持つキューがなくなるまで、コンシューマ スレッドはスリープする必要があります。コンシューマー スレッドは、プロデューサーがデータをいずれかのキューに入れる場合にのみ起動する必要があります。

複数のキューは、mutex を使用して 2 つのスレッド間で同期されます。プロデューサがいずれかのキューにデータを入れるたびにコンシューマ スレッドをウェイクアップするために、イベント シグナリングがスレッド間に実装されます。

ただし、この方法でコンシューマー スレッドをウェイクアップするように通知すると、キューのいずれかにデータがあっても、コンシューマーがスリープ状態になる可能性があります。

問題:

このシナリオを考えてみましょう。コンシューマーが n 番目のキューのデータを処理していると考えてください。同時に、プロデューサがデータを n-1、n-2 キューに入れる可能性があり、コンシューマが起動して n 番目のデータを処理しているため、シグナリングは有効ではありません。コンシューマーが n 番目のキュー データの処理を完了すると、スリープ状態になり、n-1、n-2 のデータは、リスナーによってさらにシグナルが与えられるまで処理されません。

このシナリオにどのように対処できますか? 人々はセモフォアの使用も勧めています。セマフォはこのシナリオに関連していますか?

前もって感謝します。

0 投票する
1 に答える
365 参照

javascript - ローカル ネットワークからのみ WebRTC ピアを表示することは可能ですか?

これは WebRTC よりもシグナリングの問題ですが、同じローカル ネットワーク内でしかコンピュータを見つけることができないのでしょうか? たとえば、OS X AirDrop に似たサービスを作成することは可能でしょうか。ここで、https ://airdrop.com などのページに移動すると、ブラウザで同じサイトを開いている他のコンピュータも表示されますが、それらの場合にのみ表示されます。ローカルネットワーク内である種のシグナリングサーバーをホストする必要なしに同じローカルネットワークにある (つまり、「グローバル」シグナリングサーバーが 1 つしかない) ?

0 投票する
3 に答える
281 参照

session - アプリケーションに依存しないシグナリング プロトコルはありますか?

アプリケーションに依存しないシグナリング プロトコルはありますか?

ユースケースはこれです。OSI モデルのアプリケーション層の複数のプロトコルをサポートするマルチエージェント システム用のオープンソース ライブラリがあります。現時点では、HTTP、XMPP、および ZeroMQ がサポートされています。高帯域幅のリアルタイム ストリーミングの可能性を追加したいと考えています。そのためにRTPを使用することは論理的です。

つまり、要約すると、シグナリングに使用できる相手との接続が既に確立されています。データ通信用の新しいチャネルのみをネゴシエートしたい。

ただし、現在の標準に関しては、シグナリングに関しては、それらのすべてがアプリケーションに関連付けられているようです。これらの現在の「標準」は、SIP、RTSP、およびジングルのようです。それらはすべて、アプリケーション層で RTP または SRTP を使用し、トランスポート層で UDP を使用しているようです。たとえばXEP-0167を参照してください。

ネゴシエートしたいのは、データ送信に使用できるそのパーティへの別の接続だけです。セッション記述プロトコルでは、メディアに関するあらゆる種類のもの、オプションの電話番号などが表示されます。誰かがアプリケーションに依存しないことを意図したシグナリング プロトコルを指摘できれば、それは素晴らしいことです!

0 投票する
2 に答える
1701 参照

webrtc - PeerConnection: ローカル ネットワークで電話をかける

私はWebRTCをいじっていますが、達成したいのは次のとおりです。

User1 は 192.168.xx でブラウザを開きます

User2 は 192.168.xx でブラウザを開きます 同じページ

ユーザー 1 が通話をクリックすると、ユーザー 2 が自分の画面にストリームを表示します。

node と socket.io を使用してシグナリング サーバーを作成し、socket.io ルームを使用してユーザー間でメッセージを交換できます。

私がフォローしている手順は次のとおりです。

  • ユーザーメディアを取得
  • peerconnection1 を作成します - ice サーバーはありません
  • ピア接続にストリームを追加します
  • オファーを作成する
  • ソケット経由でオファーを送る
  • オファーを受け取り、peerconnection2 を作成します - アイスサーバーはありません
  • 答えを送る

また、「onececandidate」と「onaddstream」にログを記録して、いつ呼び出されるかを確認し、「onaddstream」でビデオ要素を作成します。

通話ボタンを押すと、他のコンピューターでビデオ要素が黒くなりますが、ビデオもオーディオも表示されません。確かに、いくつかの重要なステップが欠けています。

誰かが正しい呼び出しを行い、必要なすべてのデータを交換してストリームを反対側に表示するために必要な手順を教えてもらえますか?

どうもありがとうございました

0 投票する
1 に答える
1724 参照

php - simpleWebRTC signalmaster - シグナリング + STUN および TURN の設定

simpleWebRTC一種のマルチ動画アプリとして使っていました。

次に、シグナリング サーバーをセットアップする必要があります。問題: ノードの知識がありません。

可能な解決策:

  1. に解決策はありPHPますか?(ええ...おそらくそうではありません....)

  2. 何かサービスはありますか?(私は試しXirsysました-そこに正常に接続できStunず、ターン+彼らはシグナリングサーバーを指定していません。調べてTwilio-PubNubシグナリング、スタン、ターンへの単純な接続に関するドキュメントが見つかりませんでした-システムを介してすべてを構築する必要はありません)

  3. ノードで実際に理解していない人のために、ノードでシグナルマスターをセットアップするための簡単なレシピはありますか?