2015-01-06 7 views
7

私は、AndroidにネイティブのWebRTCを実装していますが返されます。私はhttp://www.webrtc.org/native-code/android、ここで説明するようにコードをコンパイルして実行することができましたが、私はなってapprtc.appspot.comが明らかにチャンネルトークンを返さない問題に遭遇した:AppRTCClientのソースコードを検査する場合AppRTCサーバは、HTMLではなくJSON

01-05 20:01:51.230 15488-15488/org.appspot.apprtc E/AppRTCDemoActivity﹕ Fatal error: Missing channelToken in HTML: <!DOCTYPE html> 
    <!-- 
    * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 
    * 
    * Use of this source code is governed by a BSD-style license 
    * that can be found in the LICENSE file in the root of the source 
    * tree. 
    --> 
    <html> 
    <head> 
    <title>WebRTC Reference App</title> 
    <meta charset="utf-8"> 
    <meta name="description" content="WebRTC reference app"> 
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1"> 
    <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script><link rel="canonical" href="https://apprtc.appspot.com/room/42272483?r=fh"> 
    <link rel="stylesheet" href="https://1-ps.googleusercontent.com/sxk/j1xSZgZ8VRf8QgCJPihVzk5mBR/s.apprtc.appspot.com/apprtc.appspot.com/css/A.main.css.pagespeed.cf.mluzaRyZGPUUQu3CIFwW.css"> 
    </head> 
    <body><noscript><meta HTTP-EQUIV="refresh" content="0;url='https://apprtc.appspot.com/r/42272483?r=fh&amp;PageSpeed=noscript'" /><style><!--table,div,span,font,p{display:none} --></style><div style="display:block">Please click <a href="https://apprtc.appspot.com/r/42272483?r=fh&amp;PageSpeed=noscript">here</a> if you are not redirected within a few seconds.</div></noscript> 
    <div id="videos"> 
    <video id="mini-video" autoplay muted></video> 
    <canvas id="remote-canvas"></canvas> 
    <video id="remote-video" autoplay></video> 
    <video id="local-video" autoplay muted></video> 
    </div> 
    <footer> 
    <div id="sharing"> 
    <div id="room-link">Waiting for someone to join this room: <a href="https://apprtc.appspot.com/room/42272483?r=fh" target="_blank">https://apprtc.appspot.com/room/42272483?r=fh</a></div> 
    </div> 
    <div id="info"></div> 
    <div id="status"></div> 
    </footer> 
    <script src="https://1-ps.googleusercontent.com/sxk/j1xSZgZ8VRf8QgCJPihVzk5mBR/s.apprtc.appspot.com/apprtc.appspot.com/js/stats.js.pagespeed.jm.A-w15PL7V0sRNC026ANH.js"></script> 
    <script src="https://1-ps.googleusercontent.com/sxk/j1xSZgZ8VRf8QgCJPihVzk5mBR/s.apprtc.appspot.com/apprtc.appspot.com/js/signaling.js.pagespeed.jm.QZ7VRUXKfNhiyV7jHkmW.js"></script> 
    <script src="https://1-ps.googleusercontent.com/sxk/j1xSZgZ8VRf8QgCJPihVzk5mBR/s.apprtc.appspot.com/apprtc.appspot.com/js/infobox.js.pagespeed.jm.C9t_78UyYtO6bMRljt_L.js"></script> 
    <script src="https://1-ps.googleusercontent.com/sxk/j1xSZgZ8VRf8QgCJPihVzk5mBR/s.apprtc.appspot.com/apprtc.appspot.com/js/sdputils.js.pagespeed.jm.DWy54ENwSOTLQKw10p1o.js"></script> 
    <script src="https://1-ps.googleusercontent.com/sxk/j1xSZgZ8VRf8QgCJPihVzk5mBR/s.apprtc.appspot.com/apprtc.appspot.com/js/util.js.pagespeed.jm.q3iuB_S1TC2eBJC_RFlb.js"></script> 
    <script src="https://1-ps.googleusercontent.com/sxk/j1xSZgZ8VRf8QgCJPihVzk5mBR/s.apprtc.appspot.com/apprtc.appspot.com/js/main.js.pagespeed.jm.mR4sH1O_ReNLDaNiS3o_.js"></script> 
    <script src="https://1-ps.googleusercontent.com/sxk/j1xSZgZ8VRf8QgCJPihVzk5mBR/s.apprtc.appspot.com/apprtc.appspot.com/js/adapter.js.pagespeed.jm.-Ip1bBjviqtsxeGluAGS.js"></script> 
    <script type="text/javascript">var params={errorMessages:[],isLoopback:false,roomId:'42272483',roomLink:'https://apprtc.appspot.com/room/42272483?r=fh',mediaConstraints:{"audio":true,"video":true},offerConstraints:{"optional":[],"mandatory":{}},peerConnectionConfig:{"iceServers":[]},peerConnectionConstraints:{"optional":[{"googImprovedWifiBwe":true}]},turnRequestUrl:'https://computeengineondemand.appspot.com/turn?username=280585048&key=4080218913',turnTransports:'',audioSendBitrate:'',audioSendCodec:'',audioRecvBitrate:'',audioRecvCodec:'',isStereoscopic:'',opusMaxPbr:'',opusFec:'',opusStereo:'',videoSendBitrate:'',videoSendInitialBitrate:'',videoSendCodec:'',videoRecvBitrate:'',videoRecvCodec:'',wssUrl:'wss://apprtc-ws.webrtc.org:443/ws',wssPostUrl:'https://apprtc-ws.webrtc.org:443'};initialize();</script> 
    <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.cr 

機能で

// Fetches |url| and fishes the signaling parameters out of the HTML via 
// regular expressions. 
// 
// TODO(fischman): replace this hackery with a dedicated JSON-serving URL in 
// apprtc so that this isn't necessary (here and in other future apps that 
// want to interop with apprtc). 
private AppRTCSignalingParameters getParametersForRoomUrl(String url) 
     throws IOException { 

    // ... 

} 

はhtmlコードの解析の多くを発生し、チャネルトークンが正しくから解析されていないようです。アプリに障害が発生した場所の.javaここhttps://code.google.com/p/webrtc/source/browse/trunk/talk/examples/android/src/org/appspot/apprtc/AppRTCClient.java?r=5847私は、正確に機能をライン234ffで面白いコメントを見つけましたサーバーから返されたレスポンスhtml(不思議ではない)

チャネルトークンがあるかどうか、および/またはそれが正しいかどうかどうかはさらに調査しませんでした。代わりに、私は(!トランク)コードを疑わ時代遅れかもしれない、グーグルとのGithub上で、このプロジェクトが見つかりました:それは期待するはずのためhttps://github.com/pristineio/webrtc-android

同じ機能が、ここではライン232ffで、パラメータとして&トン= JSONに渡しますJsonを返すサーバー。この関数は、Jsonを解析するときに失敗します。理由を推測してください。ビンゴ!同じHTMLページはパラメータの有無にかかわらず、返されるため。完全を期す失敗した完全なURLについては

// Fetches |url| and fishes the signaling parameters out of the JSON. 
private AppRTCSignalingParameters getParametersForRoomUrl(String url) 
     throws IOException, JSONException { 
    url = url + "&t=json"; 

    // ... 

} 

:00000000は部屋番号をある

https://apprtc.appspot.com/?r=00000000&t=json 

GoogleのFischman氏はその間にコードを更新したようですが、webrtcのコードは最新ではありません.Githubのpristineio/webrtc-androidはapprtc.appspot.comのパラメータを知っているようですHTMLではなくJSONを返しませんが、それはもはやそう。

私はグーグルが、apprtc.appspot.comのサーバーコードを見つけるcoudln'tが、私は(私はそれがPythonのプロジェクトだったと思います)の前にそれを見ていることを忘れないでください。

  • 誰かがそのソースコードへのリンクを持っていますか?

次に、そのURLのパラメータを検索したところ、http://samdutton.github.io/webrtc/samples/web/content/apprtc/params.htmlを含む2つのページが見つかりましたが、いずれもJsonとして結果を要求するパラメータまたは代替URLを示していませんでした。

  • 誰かが正しいパラメータ(またはURL)を知っていますか?
  • また、誰もが完全な仕様が分かっていますか?
  • 誰かがAppRTCClient.Javaの最新かつ動作中のソースコードへのリンクを持っていますか?

ありがとう!

答えて

3

あなたと同じ問題が発生しています。私はここのコードが見つかりました:

https://github.com/GoogleChrome/webrtc/tree/master/samples/web/content/apprtc

は現在、それを壊れている可能性がものを見るために変化を見。私が何かを見つけたら、この回答を更新してください。

UPDATE:

https://github.com/GoogleChrome/webrtc/commit/c36b88475fab8a3e4436a87a7ea84265b0e13a8a#diff-c3e41e94913c93dfe31babd4830c3065

彼らはWebSocketのチャンネルに、GAEチャンネルAPIから移動している:彼らはこのコミットでは、いくつかの重大な変更を行っているように見えます。

+1

@Aidaminaが2番目のリンクに示すように、150ffが削除されたように見えるので、HTMLの代わりにJsonを返すと自動的に失敗します。サーバーのソースに私を指摘してくれてありがとうございました。 –

+0

私はこの問題をGoogleで報告し、次のような応答を受けました。「代わりに、新しいapprtc.appspot.com/register APIを使用したい」これが誰にでも役立つことを願っています。 –

+1

どのように修正しましたか?あなたは働いているプロジェクトを共有できますか? –

関連する問題