• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Echtzeit-Client/Server-Kommunikation ohne Socket.io?

der_gert

New member
Hallo,

ich stehe vor dem Problem, in Echtzeit Daten zwischen Client und Server austauschen zu müssen, konkret nämlich Gamepad-Daten (Joystick-Stellungen). Wie ich gelesen habe, ist normalerweise Socket.io die Standardlösung für Echtzeit-Client/Server-Kommunikation. Allerdings benötigt Socket.io serverseitige Plugins (Node.js, glaube ich, was wiederum Python braucht). Aus unten genannten Gründen wäre eine Lösung ohne serverseitigem Plugin für mich wichtig.
Gibt es also in JavaScript eine Möglichkeit zur Client/Server-Kommunikation ohne Socket.io?

Hintergrund der Frage:
Ich habe einen ferngesteuertes Fahrzeug mit Kamera. Um das zu steuern, habe ich eine C#-Applikation geschrieben (die relativ umfangreich, also eher schlecht auf "webfreundliche" Sprachen wie z.B. Java zu portieren ist). Jetzt möchte ich das Fahrzeug von einem Client über eine HTML5-Seite steuern können. Dazu würde ich die C#-Applikation um einen einfachen Webserver erweitern, der die HTML-Seite bereitstellt. Da das kein Standard-Apache/IIS o.ä. ist, kann ich natürlich nicht einfach ein Node.js oder Python installieren. Ich brauche aber einen Weg, die Gamepad-Daten möglichst in Echtzeit vom Client an den Server zu schicken, damit dieser das Fahrzeug entsprechend steuern kann. Der Client könnte via Gamepad API an die Gamepad-Daten kommen. Nur wie bekommt sie der Server?

Falls euch andere Lösungsansätze für mein Problem einfallen, freue ich mich natürlich auch, davon zu hören!
Danke!
 
Zuletzt bearbeitet:
Würde denn da Ajax reichen oder ist das zu träge? Ajax ist ein ganz normaler HTTP Request aber so steuerbar, dass kein Seitenreload stattfindet. Zweite Frage: Wie dachtest du, per JS auf einen Joystick zuzugreifen? Ist das ein Java Applet, was das lokal macht?
 
Ajax wäre glaube ich einerseits zu träge (die Latenz sollte so gering wie möglich sein [unter 500ms], sonst kann man das Fahrzeug nicht mehr gut fernsteuern), andererseits sollen die aktuellen Joystick-Daten ja mindestens 4-5x pro Sekunde übertragen werden - das wären recht viele HTTP-Requests, vielleicht kommt dann gerade noch eine Firewall auf die Idee, dass es eine DoS-Attacke ist :)
Zum Joystick: Ich bin eigentlich noch in der Planungsphase, aber ich dachte wie gesagt an das "Gamepad API", demonstriert hier: Jumping the Hurdles with the Gamepad API - HTML5 Rocks. Ich wollte Dritt-Technologien bzw. Plugins wie Java eigentlich vermeiden - sonst könnte ich gleich Silverlight nehmen :) Und seit Oracle beim Java-Update diesen McAffee-Dreck hinterhältig installiert, möchte ich es eigentlich auch nicht mehr unterstützen.

Da die Gamepad-API-Demo in meinem Firefox problemlos funktioniert hat, bin ich davon ausgegangen, dass das eine funktionierende Lösung wäre.
Im Unterschied zu einer beliebigen Website kann ich bei meinen Clients schon gewisse Voraussetzungen vorschreiben (z.B. einen bestimmten Browser).
 
Zuletzt bearbeitet:
Gibt es also in JavaScript eine Möglichkeit zur Client/Server-Kommunikation ohne Socket.io?
Socket.io nutzt für neuere browser websockets, die kannst du recht einfach auch in js nutzen, für deinen server müsstest du das websocket-protokoll entweder selbst schreiben(ist nicht viel), oder du suchst dir eine fertige implementierung, oder das ist vielleicht sogar schon vorhanden.
 
Zuletzt bearbeitet:
Richtig, my bad, ich dachte an Flash. Bei Java ist kein McAffee dabei. Sorry.
EDIT: Bei Java ist es die Ask-Toolbar. Auch nicht viel besser...
 
Zuletzt bearbeitet:
Zurück
Oben