0

私は Sip2Peer を初めて使用し、Android の例を使用するように Bootstrap Peer と SBC を設定しようとしていました。サーバーに Apache Ant をインストールし、BootstrapPeer.java と SessionBorderController.java を実行しました。SBC を実行すると、次の警告が表示されます。

WARNING: file "users.db" not found: created new empty DB

touch users.db を使って作成したのですが、それでいいのかわかりません。

次に、Android 用の Sip2Peer アプリケーションで 2 つのエミュレーターを実行し、スマートフォンでも実行しました。私はこれらを次のように設定しました (両方の IP は同じで、セキュリティのために隠しているだけです):

Bootstrap Peer: bootstrap@147.83.XXX.XXX:5080
SCB Server: 147.83.XXX.XXX:6066

私のスマートフォンでは、3G 接続を使用しているため、SBC を構成しませんでした。NAT の背後にあるわけではありません。私の 2 つのエミュレーターは NAT の背後にあるため、構成しました。次に、両方のエミュレーターで SBC メニュー オプションをクリックし、3 つのデバイスすべてから参加メッセージを送信しました。

エミュレーターでそれを行うと、「Received:peer_list」というメッセージが表示されたトーストが表示されますが、スマートフォンには表示されません。SBCを使っていないからでしょうか?NAT の背後にいなければ必要ないと思っていました。

問題は、ピア リストを確認すると常に空であることです。Bootstrap ファイルと onReceivedJSONMsg の次の文にいくつかの println を設定しました。

//check the numPeerList field
int numPeer = (Integer) peerMsg.get("numPeerList");

この numPeer は常に 0 であるため、if 句には入りません。これは私のログの入り口です:

{"sender":"peerDroid@10.0.2.XXX:50250","timestamp":1345816615658, "byte":218, "type":"recv", "typeMessage":"peer_join"}
{"sender":"peerDroid@10.178.51.XXX:50250","timestamp":1345816615658, "byte":223, "type":"recv", "typeMessage":"peer_join"}
{"timestamp":1345816650244, "receiver":"peerDroid@10.0.2.XXX:50250", "byte":"70", "transaction":"successful", "RTT":"7", "type":"sent", "typeMessage":"peer_list"}
{"timestamp":1345816650244, "receiver":"peerDroid@10.178.51.XXX:50250", "byte":"70", "transaction":"failed", "RTT":"7", "type":"sent", "typeMessage":"peer_list"}

デバイス間でpingを送信しようとすると、動作し、受信します。動作していないもののリストです。

なぜ機能しないのか誰にもわかりませんか?

ありがとう!

4

1 に答える 1

2

おそらく、デバイスごとに異なるピア キーを使用する必要があるため、ブートストラップ ピアはすべてのデバイスを異なるピアとして扱います。

方法でピアのキーを変更できますPeerActivity.init()

于 2012-12-01T17:13:50.147 に答える