Android Wi-Fi Direct-Netzwerk
Ich entwickle eine Anwendung auf Android, wo ich bin auf der Suche nach all den Kollegen in den-Bereich und verbinden Sie anschließend mit allen von Ihnen, Die Geräte, die initiiert, die die Entdeckung geworden, der Besitzer der Gruppe und alle anderen geworden, client, ich habe alles getan, die Verbindung Sache, aber jetzt will ich den Besitzer der Gruppe senden, wird die Nachricht an alle Verbindungs-peers, Wie dies zu erreichen und auch bitte sagen Sie mir, was ist die Methodik von peer-to-peer-Kommunikation , Tut p2p in Android verwenden auch die IP-Daten senden und empfangen kann?
Danke
Hinsichtlich Der Talib.
- waren Sie erfolgreich in Ihren Bemühungen? Wenn ja, bitte lassen Sie mich wissen, ich bin vor dem gleichen problem und konnte eine Lösung finden. Haben aufgerissen, alle möglichen Dokumentationen, aber kein Erfolg 🙁 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wi-Fi Direct/P2P kann auch als normale Wi-Fi, aber wo der Besitzer der Gruppe (GEHEN) fungiert als software access point (dhcp-server, provisioning, etc.). Zur Beantwortung deiner letzten Frage, ja, Wi-Fi Direct verwendet auch IP-Daten senden und empfangen.
Möchten Sie zum senden von Daten an alle Mitglieder in der Gruppe? Es gibt zwei Lösungen für dieses:
Ist die effizienteste Methode wäre Lösung 1, bei der übertragung der Daten über multicast, als müssten Sie nur senden Sie die Daten einmal. Leider Wi-Fi-multicast-Unterstützung ist sehr fragmentiert Android, wie viele Geräte scheinen zu blockieren, nicht-unicast-Datenverkehr. Sehen dieser Artikel für mehr in die Tiefe Informationen, wenn Sie wollen, diesen Weg gehen.
Lösung 2 ist die beste Methode, wenn Sie gewährleisten wollen, Unterstützung auf allen Geräten, und übertragen Sie nur eine kleine Menge von Daten. Der GEHEN müssen die IP-Adressen der clients in der Gruppe, sondern wegen der Art, Wi-Fi Direct Implementierung in Android, nur die GEHEN, die IP ist bekannt, dass alle Geräte. Eine Lösung ist, damit die clients eine Verbindung zu einem sockel auf dem Sie GEHEN, um Ihre IP-Adresse:
Client-code
Gruppe Besitzer-code:
Alles was Sie jetzt tun müssen, ist starten Sie eine serversocket auf jedem client, und stellen zu GEHEN, Durchlaufen Sie die client-Liste erstellen einer socket-Verbindung zu jeder und senden der Nachricht, die Sie übertragen wollen.
Nun haben wir https://github.com/libp2p/go-libp2p-pubsub - für die Handhabung von multicast-Nachrichten (und es könnten auch Splitter-Netzwerk in Themen)
und wir haben auch einige ziemlich peer-discovery-Protokoll so: https://github.com/libp2p/go-libp2p-examples/blob/master/chat-with-mdns/mdns.go
So, Sie können sehr leicht für die Interaktion mit Thema Nachrichten multicast im lokalen Netzwerk, nur mit libp2p
Ich habe gerade den test https://github.com/MoonSHRD/p2chat-android die wrap-Lösung, die Sie brauchen, in einer einzigen Bibliothek, die verwendet werden können von android.
So weit konnten wir interagieren mit dem hohen Niveau der Nachrichten, anstatt die Interaktion mit sockets oder streams auf einem niedrigen Niveau. Hoffe, dies hilft jemand.
p.s. Allerdings sollte ich merken, dass ich nicht testen, mDNS, Entdeckung, wi-fi direct-Netzwerke noch
Gibt es mehrere Optionen, um mit zu beginnen, aber Sie können Sie wählen nach Ihren Anforderungen. Es ist ziemlich einfach zu
broadcast
unddiscover
des Dienstes mit jmdns/jmdns. Hier ist das Beispiel von Google docs,wenn Sie entwickeln desktop-Anwendung in java, sollte Ihr Ziel sein, zu finden, die besten cross-Plattform DNS-SD (Zeroconf, Bonjour, DNS-Selbstfindung) - Bibliothek vorhanden ist, die es gibt.
Gibt es andere, Reine Java-DNS-SD-Implementierungen, aber es ist unklar, ob einer von Ihnen bieten eine Bibliothek, die ist so einfach zu verwenden oder vollständig getestet, wie DNS-SD. Den Kopf über die
Kellner einmal. Ich bevorzuge jedoch gehen durch die
jmdns
funktioniert Es gut. Wie der peer-zu-peer-Verbindung verwenden soll IP(es müssen), können Sie Daten senden/empfangen zu können, sobald die Verbindung hergestellt ist.