問題タブ [multipeer-connectivity]
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.
ios - iOS7 での Bluetooth 通信の不具合
Bluetooth経由でNSDataをすばやくサンドする必要があるアプリケーションがあります。問題は、NSData (長さ 367、1 秒間に少なくとも 10 ポケットの頻度) の送信と受信の間の遅延が時間とともにどんどん大きくなることです。
今、メソッドでデータを送信しようとしていますsendData:toPeers:withMode:error:
。Bluetooth が通常 4KBps でさえ送信できないとは信じられません (2 台の iPhone 5s でテスト済み)。どうすれば修正できますか?NSInputStreams(NSOutputStreams) は役に立ちますか?
PS: 同じコードで Wi-Fi を使用すると、1 秒あたり 60 ポケットの頻度でも問題なく動作します。
更新: ストリームを使用しようとすると、常に数秒後に閉じます。
multipeer-connectivity - MCNearbyServiceAdvertiser デリゲート メソッドが呼び出されたことがない
マルチピア接続フレームワークと Nearby Services (ブラウザーと広告主の両方) を使用して、デバイス間で自動接続して少量のデータを交換するアプリを実装します。
すべての接続の詳細を処理するセッション マネージャーを作成しました。そのデリゲートは、データを受信したときに UI の更新を処理するためのビュー コントローラーです。
セッション マネージャーは以下を構築します。
- サービス アドバタイザー、デリゲートはセッション マネージャーです
- デリゲートがセッション マネージャーでもあるサービス ブラウザー
2 つのデバイス (1 つは Xcode でログを取得し、もう 1 つはスタンドアロン) でアプリを起動すると、サービス ブラウザーのデリゲートに対応するメソッドを介して Found Peer メッセージを受け取ります。
別のメッセージで述べたように、MCPeerID の displayName プロパティ (ローカルと受信ピアの両方) を比較して、どちらが招待を送信するかを決定し、相互招待を回避します。
ここの別のメッセージで述べたように、「オプションの」MCSessionデリゲートメソッドも追加しました- (void)session:didReceiveCertificate:fromPeer:certificateHandler:
ただし、(void)advertiser:didReceiveInvitationFromPeer:withContext:invitationHandler:
MCNearbyServiceAdvertiser のデリゲート メソッドは呼び出されません。(void)session:peer:didChangeState:
メソッドでタイムアウトを設定した後、MCSession デリゲート メソッドによって受信される NotConnected メッセージのみがありますinvitePeer:toSession:withContext:timeout:
。
提案されたさまざまなオプションで:
- セッションはセキュリティ nil および MCEncryptionNone で初期化されます。
- discoveryInfo は nil です。
- 招待状で送信される context は、NSData としてアーカイブされた単なる短い文字列です。
トラブルシューティングするには:
- すべてのアイテムが存在することを確認しました (セッションとそのデリゲート、広告主とそのデリゲート)。
- アプリがアクティブである限り、Service Browser と Advertiser が停止することはありません。
どこを見渡せばいいのかわからない!
ios - マルチピア接続セッションをバックグラウンドで実行できますか?
メッセージを送信するためにマルチピア接続をうまく利用している 2 つのアプリがあります。
現在、「サーバー」アプリがバックグラウンドに移動すると、セッションを破棄し、フォアグラウンドに戻るときに再確立します。ここで、バックグラウンドでサーバー アプリを (受信したメッセージに対して) レスポンシブにする必要があります。
レスポンシブであるということは、着信メッセージを受け入れ、処理を行い、確認をピアに返すことができるということです。UI は必要ありません。アプリがフォアグラウンドに戻ると、バックグラウンドで受信したメッセージが表示されます。
バックグラウンド通知で MPC ティアタウンを無効にしたところ、MPC がセッションから「サーバー」を自動的に切断することがわかりました。そのため、「クライアント」ピアはサーバーがオフラインになるのを確認します。
- バックグラウンド マルチピア セッションは可能ですか? そうだと思いますが、それを有効にする方法について決定的なものを見つけることができないようです。
- バックグラウンド処理をサポートするアプリを開発していないため、バックグラウンド処理をサポートするアプリで問題が解決するかどうかのガイダンスを探しています
- 私が見たサポートされているバックグラウンド モードは、実際にはマルチピアに対応していません。私が見つけることができる最も近いものは「バックグラウンド フェッチ」です。それは本当に重要ですか?
ios - 接続アラートを無効にする マルチピア接続
アプリでマルチピア接続機能を使用したいと考えています。アプリの機能の簡単な紹介: アプリは、アプリを (バックグラウンドで) 実行している他のデバイスをスキャンし、それらに接続して、少しのデータを転送する必要があります。ユーザーとの対話なしですべて。
質問: マルチピアを使用して他のデバイスに接続できますが、別のデバイスが接続を望んでいるというアラート ビューを表示したり、ユーザーに接続を受け入れるか拒否させたりする必要はありませんか? 他のデバイスからのすべての着信接続をプログラムで受け入れる方法はありますか? もしそうなら、どのように?
よろしくお願いします!
ios - ピア (MultiPeer Connectivity) は接続されていますが、connectedPeers に保存されていません
他の 2 つのブラウザーにアドバタイズしている 1 つのデバイスがあります。両方のブラウザが初めて広告主に接続すると、すべてが正常に機能します (各ピアが相互に接続されます)。
ブラウザー 1 が切断されて再接続されると、ブラウザー 2 は、peer:didChangeState: に従って接続されていても、接続されたピアとしてブラウザー 1 を失います。ただし、広告主には 2 つのピアが正常に接続されています。何が間違っているのか、またはこれをさらにデバッグする方法はありますか?
(注: 私は MCNearbyServiceAdvertiser と MCNearbyServiceBrowser を使用しており、独自のカスタムの広告主/ブラウザー ビュー コントローラーを作成しています)
ios - 非 iOS デバイスへのマルチピア Bluetooth 接続
現在、Raspberry Pi と iOS デバイスを Bluetooth 経由で接続しようとしています。BTLE を使用すると、CBCentralManager
これを行うことができます。Pi に接続してデータを共有できます。
私の問題は、私の目的のために、デバイスに IP が必要なことです。これは、私の知る限り、PAN (Personal Area Network) Bluetooth プロファイルを使用してのみ可能です。iOS は新しいMultipeer Connectivity FrameworkMCNearbyServiceBrowser
でこれをサポートしており、1 つは を使用し、もう1 つはを使用して 2 つの iOS デバイスを接続するときに機能しMCNearbyServiceAdvertiser
ます。接続が確立されると、両方のデバイスに IP を持つネットワーク インターフェイスが設定されます。しかし今、私は Rasperry Pi をそのシナリオに入れなければなりません - そして私は Pi を PAN に参加させる方法を見つけることができません。
これが何らかの形で可能である場合、どこから始めればよいか、PAN などでの通信について適切な説明がある場合、手がかりはありますか? そのようなことを行うフレームワークさえあるのでしょうか? リードやアドバイスをいただければ幸いです。
ios - iOS 7 マルチピア接続 - MCNearbyServiceBrowser は自分自身を見つけますか?
iOS 7 Multipeer Connectivity フレームワークを使用して自分自身を宣伝し、他のデバイスを参照するアプリがあります。MCNearbyServiceBrowser
インスタンスが自分自身 (アプリが実行されているデバイス) を見つけてbrowser:foundPeer...
デリゲート メソッドを呼び出すのはなぜですか? PeerID
デバイスのアドバタイズを開始するために作成した実際のものとPeerID
、デリゲート メソッドで検出されたものをログに記録すると、一意の ID は異なりますが、表示名は同じです。理由はありますか?