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

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

ただいまの
回答率

91.27%

  • WebRTC

    55questions

    WebRTC(Web Real-Time Communication)とは、プラグイン無しでウェブブラウザ間の音声通話・ビデオチャットなどリアルタイムコミュニケーションができるオープンフレームワークです。W3CがAPIレベルで、IETFがプロトコルレベルでそれぞれ標準化が進められています。

SkyWay: "Generated ICE candidate for" がたくさん出る

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 32

olee46

score 11

困っていること:

標題のメッセージが明らかに必要以上にconsoleに出力されています
結果として、ページの動きが重くなっています

consoleの様子

試してみたこと:

  • APIキーを新たに取得 → 効果なし

追記:

時間をおいて(1hほど)アクセスしたところ、同じ現象は起きませんでした
原因は不明なままなので引き続き回答を募集します

コード:

const peer = new Peer({
    key: 'b018ba57-5ff0-4bc3-a8c0-727c5998e71d',
    debug: 3
});

let room = null;
let roomCount = 1;
let memberCount = 0;

const MAX_ROOM_COUNT = 2;
const MAX_MEMBER_COUNT = 2;

peer.on('open', function(id){
    $('#myId').text(id);
});

peer.on('close', function(){ // close Peer
    // reset HTML: myId
    $('#myId').text('--');
    // reset roomCount
    roomCount = 0;
})

$('#autoJoin').click(function(){
    autoJoinRoom(roomCount);
})

$('#leave').click(function(){
    leaveRoom();
})

$('#send').click(function(){
    chat = $('#chat').val();
    // send chat
    room.send(chat);
    // show chat in own log
    toLog(chat, 'me');
    // clear input
    $('#chat').val('');
})

/** FUNCTION DEFINITIONS **/
function autoJoinRoom(roomCount){
    leaveRoom();
    joinRoom('room' + roomCount);
}

function joinRoom(roomName){
    room = peer.joinRoom(roomName);

    room.on('open', function(){
        // set HTML: roomName, maxMemberCount
        $('#roomName').text(roomName);
        $('#maxMemberCount').text(MAX_MEMBER_COUNT);
        // increment memberCount
        memberCount++;
        // set memberCount
        setCount(memberCount);
        // log
        toLog('joined: ' + roomName);
    });

    room.on('peerJoin', function(id){
        // increment memberCount
        memberCount++;
        // send memberCount to new user
        room.send({to: id, count: memberCount});
        // send 'abort' to new user if memberCount > MAX_MEMBER_COUNT
        if(memberCount > MAX_MEMBER_COUNT) {
            room.send({abort: id});
        }
        // set memberCount
        setCount(memberCount);
    });

    room.on('peerLeave', function(){
        // decrement memberCount
        memberCount--;
        // set memberCount
        setCount(memberCount);
    })

    room.on('close', function(){
        // reset memberCount
        memberCount = 0;
        // reset HTML: roomName, memberCount, maxMemberCount
        $('#roomName').text('--');
        $('#memberCount').text('--');
        $('#maxMemberCount').text('--');
        // log
        toLog('left: ' + roomName);
    })

    room.on('data', function(msg){ // types of msg: textchat, {abort: id}, {to: id, count:memberCount}
        if(msg.data.abort == peer.id) { // receive 'abort'
            // increment roomCount
            roomCount++;
            if(roomCount <= MAX_ROOM_COUNT) {
                // if roomCount <= MAX_ROOM_COUNT then autoJoinRoom
                autoJoinRoom(roomCount);
            } else {
                // leaveRoom
                leaveRoom();
                // else 'failed to autojoin'
                toLog('failed autoJoin');
            }
            // else 'failed to autojoin'
        } else if(msg.data.to == peer.id){ // receive memberCount
            // copy msg to memberCount
            memberCount = msg.data.count;
            // set memberCount
            setCount(memberCount);
        } else if(!msg.data.abort && !msg.data.to){ // receive textchat
            toLog(msg.data, 'ID:' + msg.src);

        }

    })
}

function leaveRoom(){
    if(!room){
        // no joined room
        return;
    }
    room.close();
}

function setCount(c){
    $('#memberCount').text(c);
}

function toLog(msg, frm = 'system'){
    $('#log').append(frm + '> ' + msg + '<br>');
}
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

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

ただいまの回答率

91.27%

関連した質問

  • 解決済

    jQueryのAjaxにおける文字の表示

    jQueryでAjaxの非同期処理を行う場合、if文で処理の流れを分け、送られてくる値が正しければ”○”、正しくなければ"×"とWebページに文字として表示するプログラムの書き方が

  • 解決済

    PHP,JSON,について質問です

    下のこーどでpost.phpから {"num":"4","name":"ゆうひ","res":"no","time":"2016-02-05 23:27:05"}{"num"

  • 受付中

    nodeとsocketでチャットシステムを作りたい。

    前提・実現したいこと 1 フォームにテキスト入力してボタンを押すと スクリプトのsocket.onが起動して emitでサーバーに文字を飛ばします。 2 サーバー

  • 解決済

    いいね機能で合計いいね数を表示できるようにしたい。

    いいね機能を自作のwebアプリケージョン内で作成しています。現在の状況としては、いいねを押した時にaddClassとremoveClassを使い、灰色のハートを押した時には赤のハー

  • 解決済

    JavaScriptを使ってツイッターに投稿したい

    5秒当てゲームのようなものをつくっています 自分のタイムをツイッターに投稿できるようにしたいのですが、ゲームの関数とツイートする関数が別なため、タイムをtwitTexを関数に

  • 解決済

    php 繰り返し処理と条件分岐 

    現在指定行でリセットし、出力をするプログラムを記述しているのですが、 行のリセットのための入力を空で送信した場合、下記のような出力が できない状態です。どこの記述が間違っている

  • 解決済

    jQuery UI autocompleteでajax通信を途中で中断する方法

    inputタグに入力した内容から候補表示を行うautocompleteを使っているのですが、inputタグ内に一度文字を入力した後に、候補表示される前に(success前に)文字列

  • 解決済

    Javascriptの読込が完了しないとリンク遷移できない

    現状は、Ajaxを使用して別ページの一部を抜き出して表示させているのですが、 これの読込が終わらないとリンクをクリックしても遷移しない状態になってしまいます。 実際には読み込ん

同じタグがついた質問を見る

  • WebRTC

    55questions

    WebRTC(Web Real-Time Communication)とは、プラグイン無しでウェブブラウザ間の音声通話・ビデオチャットなどリアルタイムコミュニケーションができるオープンフレームワークです。W3CがAPIレベルで、IETFがプロトコルレベルでそれぞれ標準化が進められています。