Frage

Ist es möglich, eine Web-Anwendung, die mit Hilfe eines zentralen Servers zu erstellen, direkte Verbindungen mit anderen Benutzern des gleichen Web-App erstellen konnte? Ich bin ein ähnliches Verfahren wie UDP Lochen vorstellen.

Ich habe über den neuen WebSockets-API in HTML5 lesen, aber es scheint, dass Sie die Verbindung mit einem WS-kompatibelen Server vor der vollduplex Verbindung kann beginnen einleiten müssen. Ich denke, um so mehr über einen Prozess direkte Verbindungen zwischen Kunden zu machen, mit einem Server einzulassen nur in dem Anfangshändedruck.

Hinweis: Java-Applets nicht zählen. Ich bin interessiert nur in Standard-Browser-Technologien.

War es hilfreich?

Lösung

Statt intelligenter Vermutungen, hier ist eine fundierte Antwort:

HTML 5 Pläne Peer zu ermöglichen Verbindungen von Javascript-to-Peer, aber diese Verbindungen werden nicht RAW TCP werden.

Die vollständige Spezifikation finden Sie unter http://dev.w3.org/html5/websockets/ finden

JRH

EDIT: mit spezifischem Bezug auf Peer-Verbindungen zu spähen, diese Links finden Sie unter:

Es ist wichtig zu beachten, dass die Fähigkeiten noch verhandelt werden. Es wird schön sein, um „local chat“ Web-Anwendungen zu erstellen:)

JRH

Andere Tipps

UPDATE 2012.10.17: Diese Funktionalität jetzt existiert in Chrome Stable v22. Um diese Funktionalität in Chrome zu verwenden, muss man zwei Flaggen in Chrom ermöglichen: // flags:

  • Aktivieren Mediastream
  • Aktivieren Peerconnection

Dann können Sie die AppRTC Demo Seite die Demo ausprobieren. Sehen Sie sich die WebRTC - Ausführen der Demos für detaillierte Anweisungen auf Chrome Einrichten des Peer-to-Peer verwenden, um Funktionalität und Zustimmeinrichtung Erfassung.


UPDATE: Die Ingenieure von Ericcson Labs haben ein Proof of Concept in einem WebKit-Build, der a href tut <= "https://labs.ericsson.com/developer-community/blog/beyond -html5-Peer-Peer-Konversation-Video "> HTML5 Peer Conversational Video Peer.

Sie haben Demonstrationen in ihrem Blog der Technologie in Aktion, sowie Diagramme und Erklärungen, wie die Technik funktioniert.

Sie arbeiten diese auf immer stabilisiert und engagiert sich für die WebKit-Repository.

Ja, endlich.

Zum Zeitpunkt des Schreiben (2017), ist WebRTC jetzt zu einem festen Bestandteil der meisten modernen Browser (rund 70% der in Gebrauch), und ermöglicht Multimedia-Streaming, Peer-to-Peer und Lochen.

Text & Tabellen, Beispielcode und Live-Beispiele für WebRTC können unter html5rocks.com finden .

Nach caniuse.com und html5rocks.com unterstützen die folgenden Browser WebRTC:

Volle Unterstützung: Rand 14, Firefox 22, Firefox Android 55
Teilweise Unterstützung: Android Browser 56, Chrome 20, Chrome Android 29, Edge-12, Firefox 17, Opera 18, Opera Android 20, Opera Mobile 12, UC Browser Android 11.4
Future Unterstützung (Q3 2017): Chrome für iOS 11, Safari 11 für iOS 11 und OS X 10.11
Keine Unterstützung: IE, IE Mobile, Opera Mini

Die Sättigungsrate von WebRTC auf Apple-Geräte beschränkt, da Safari 11 ist noch nicht freigegeben und erfordert iOS 11 oder OS X 10.11. Obwohl aus dem vergangenen Upgrade Trends Projizieren, WebRTC sollte auf rund 75% der iOS-Geräte bis zum Jahr 2018 und 100% bis zum Jahr 2020 zur Verfügung.

Es gibt eine Reihe von Gründen, warum dies wäre heikel:

  1. Firewalls (auch einfach nur NATs) würde diese Art der Verbindung schwierig machen, zu einer viel niedrigeren protocal Schicht als auch HTTP. Mit meiner IT-Sicherheit Hut auf, dies scheint wie eine wunderbare Art und Weise auf einer Maschine beliebigen Ports zu öffnen, nur durch den Besuch einer Webseite - und so wäre es aggressiv von nahezu allen IT-Systemen blockiert werden
  2. .
  3. HTTP ist von Natur aus ein Client-Server-Protokoll. Während es relativ einfach ist Duplex-Kommunikation mit langen Polling (sowie ein paar anderen Techniken) zu simulieren, ist es nicht besonders effizient.
  4. Dies würde ein großes Loch für XSS-Angriffe öffnen.

WebSockets soll die zweite dieser Probleme zu lösen, aber (bewusst, erwarte ich) nicht die beiden anderen. Wenn sie über Peer-to-Peer in der HTML5-Spezifikation sprechen, sprechen sie über Vollduplex-Kommunikation zwischen dem Server und dem Client, nicht zwischen einem Client und einem andere.

Allerdings wäre es einfach sein, einen richtigen Netzwerk-Stack auf der WebSockets zu implementieren - mit der Maßgabe, dass die gesamte Kommunikation nach wie vor über den Server durchgeführt werden müßte. Ich habe dies mit langer Abfrage getan gesehen (ein Freund von mir an der Uni einen vollständigen TCP / IP-Stack mit langer Abfrage geschrieben).

Ich zweite harshath.jr: Sie könnte sehr gut ein Server als ein Verzeichnis handeln ( "Herkunft" jedes angeschlossenen Mittel ausgesetzt; Ursprungs-Schema + Host + Port wie in Entwurf-abarth-origin , mit dem Schema entweder "ws" oder "WSS"). Sie könnten dann die Peer-to-Peer-WebSocket-Verbindungen initiieren; die SOP durch dank CORS . Natürlich bedeutet dies, dass jeder Agent (d-Browser) müßte einen eigenen WebSocket-Server einbetten (à la Opera Unite).

In der Zwischenzeit, tun es die XMPP / IRC / usw.-Weg: keine Peer-to-Peer-Verbindung aber WebSocket-Verbindungen zu einem zentralen Server Meldungen an die angeschlossenen Agenten zu übergeben (eventuell einige (oder Netzwerk!) spezifische WebSocket "Subprotokoll")

EDIT: beachten Sie, dass all dies tatsächlich nicht in den Anwendungsbereich von HTML5 ist (all diese Dinge waren einst von HTML5 Teil aber haben in ihre eigenen Spezifikationen abgespalten worden)

Die ganze Idee von Web Sockets war es, die Probleme mit Firewalls und Proxies zu lösen http://www.kaazing.org/confluence/display/KAAZING/What+is+an+HTML+5+WebSocket

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top