質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

2016閲覧

天候が原因でP2P接続が維持できない?

tonmachin

総合スコア4

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1グッド

2クリップ

投稿2018/03/09 07:55

前提・実現したいこと

日本と東南アジアの間で、ブラウザ上のWebRTCでのビデオチャットを行いました。シグナリングサーバーへの接続→チャットルームへの参加→あとから来たPeerとの1対1データ通信→同じPeerとのビデオコール→数分話して終了、ということをしたく、いくつかの場所(現地間で最大3kmほど離れた候補地)と日本とで接続をしました。

先方が「雨だから安定しないのかも」と言っているのですが、実際にそんなことがあるのでしょうか? また低速・不安定なケースではだいたいデータ通信までは行っていて音信不通になりタイムアウトというパターンでしたが、今回はその手前なので何かこれがヒントになったりするでしょうか?

発生している問題・エラーメッセージ

前日に接続・会話のできた回線・ブラウザ、日本-東南アジアの間で、朝から雨が降っている日に行ったところまったく繋がりませんでした。

下記のようなコードでエラーはコンソールログに出すようにしていますが特にエラーメッセージはなく、お互いチャットルームに入ったのに`Peer#peerJoin`が発生しなかったり、`Peer.call`または`Peer#call`のタイミングで切れたりしました

該当のソースコード

js

1// 長いので簡略化して書きます: SkyWayを使っています 2const peer = new Peer({...}); 3let globalCall; 4// チャットルームで待ち合わせ 5const room = peer.joinRoom('entrance'); 6// Peerが来たら1-1でデータ通信で申し合わせをしてビデオコール 7room.on('peerJoin', remotePeer => { 8 const dc = peer.connect(remotePeer); 9 dc.on('data', data => { 10 // 申し合わせ内容は省略 11 globalCall = peer.call(remotePeer, mediaStream); 12 }); 13 dc.on('error', e => { 14 console.log(e); 15 }); 16}); 17// 退場したらビデオコールは強制終了 18room.on('peerLeave', _ => { 19 call.close(); 20}); 21// あとから来た方が申し合わせデータを送る 22peer.on('connection', dc => { 23 dc.on('error', e => { 24 console.log(e); 25 }); 26 dc.send('test'); 27}); 28// ビデオコールの始まり 29peer.on('call', call => { 30 call.answer(mediaStream); 31 globalCall = call; 32}); 33// 全部終わります 34peer.on('close', _ => { 35 peer.destroy(); 36}); 37// エラーは全部コンソールログに出ます 38peer.on('error', e => { 39 console.log(e); 40}); 41room.on('error', e => { 42 console.log(e); 43});

試したこと

上記ソースコードは簡易版ですが、接続失敗後に毎回コードのバグを排除するためにブラウザを再読み込みしていました。

複数の場所(数kmほど離れている複数の地域)で同様の試みがあったのですが、いずれも同じ状態でした。ひとつでも繋がればよかったのですが、すべてダメでした。

またひとつの場所でいくつか回線を変えてみたのですが、状況は変わりませんでした。

日本同士は繋がりました。

SkyWayのdebug3です。ときおりSkyWay TURN Server is unavailableと出ますが、TURNサーバーはすべて自分のものを使用し、SkyWayが出すログでもそのうちのひとつのサーバーが候補になっていることを確認できています。

補足情報(FW/ツールのバージョンなど)

  • SkyWay JavaScript SDK
  • Chrome 65.0.3325.146
  • TURNサーバーはシンガポールに3台 (TURN-TCP (ポート80のみ使用))
  • Chromeのコンソール画面でconsole.logのエラー出力をチェック
Mooktoo👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

衛星放送なんかは雨が降ると映りが悪くなると言うのはよく知られているように、電波の周波数が高くなると、雨粒による反射が無視できなくなってきます。
携帯の電波の周波数程度では天候の影響というのはあまり考えられないですが、もしかすれば現地でのネットワークの経路の一部にマイクロ波回線があるのかもしれませんねー

投稿2018/03/09 08:15

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tonmachin

2018/03/09 09:31

ご回答ありがとうございます。 いくつか現地と日本でそれぞれ試した回線のなかにスマートフォンのインターネットをテザリングしたものもあったのですが、下記のような装置が介在しているのかもしれませんね。 https://www.youtube.com/watch?v=9CQcJaHfcMg ちなみに現地でのスマートフォンによるテザリングでのWebRTCの通信も、前日は接続が確認できていました。
y_waiwai

2018/03/09 09:39

台湾に行ったりすると、裏通りなんかで電信柱の上で電線がバシバシいってたりするんで、 実際はそんなこんなで漏電してどっかの中継器が落ちるだけだったりするかもしれませんがw
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問