Seite 1 von 2

Wie mit PB Server kommunizieren?

Verfasst: 19.10.2018 08:58
von schallweller
Hallöchen allesamt.

schnalls nicht ganz...

Möchte erreichen, dass meine App per Netzwerk mit einem PB Server kommunizieren kann. Und zwar möglichst Latenzarm in Echtzeit. Plan ist eine Art Remote Control App. Wie auch immer....ganz simples Beispiel:

Window mit einem Slider Gadget. Wie kann ich in Echtzeit den Wert per Netzwerk zu nem PB Server senden? Networklibrary gibts ja nicht. Hab ein Beispiel mit WebSockets im Forum gefunden. Kam aber irgendwie nicht dahinter. Hat von euch jemand nen CodeSchnipsel rumflacken? Hab so das Gefühl, dass es garnicht so schwer sein kann.

Wers genau wissen will...später sollen per App via OSC Protokoll Musiksoftware und MIDI Geräte kontrolliert werden.

Re: Wie mit PB Server kommunizieren?

Verfasst: 19.10.2018 09:05
von RSBasic
Möchtest du vom Client (Browser) was zum Server senden und vom Server empfangen?
Da gibt es Ajax: http://api.jquery.com/jquery.ajax/
In SpiderBasic gibt es HTTPRequest(). Ich weiß nur nicht, ob HTTPRequest() das gleiche ist wie Ajax, aber mit Ajax kannst du auf jeden Fall zwischen Client und Server kommunizieren.
Ich hoffe, ich habe dich richtig verstanden.

Re: Wie mit PB Server kommunizieren?

Verfasst: 19.10.2018 10:01
von TroaX
HTTPRequest ist Ajax. Ajax ist nur ein Szenebegriff (Buzzword), um die asynchronen Server-Anfragen zu beschreiben. HTTP ist allerdings nicht für Echtzeit-Kommunikation geeignet. Dafür müsste endlich die Netzwerk-Bibliothek auf Basis von Websocket implementiert werden: https://de.wikipedia.org/wiki/WebSocket

Ansonsten müsste man das mit einer eigenen JS-Bibliuothek und einem Spiderbasic-Wrapper umsetzen. Mit Inline-Script wäre es mir persönlich zu frickelig. Außerdem muss der Webserver die Anfrage auf eine Socketverbindung verstehen. Ohne Webserver geht es meines Wissens nach nicht.

HTTP ist ein Zustandsloses Protokoll. Es wird zum Webserver eine Verbindung aufgebaut, der Requet-Header gesendet, der Server antwortet und schließt die Verbindung. Persistente Verbindungen hält der Server in der Regel nur, wenn er sich sicher ist, das mehrere Anfragen in Folge an ihn gerichtet werden (Download von Grafiken, Skriptfiles oder Stylesheet-Files). Der Server selbst kann keine Nachrichten an den Client senden. Einzige Möglichkeit wäre ein Long-Polling, wo der Client die bereitschaft für Daten mit einem HTTP-Header signalisiert und der Server die Antwort herauszögert, bis er etwas hat. Ist aber eine ziemlich dreckige Lösung.

Re: Wie mit PB Server kommunizieren?

Verfasst: 19.10.2018 10:38
von dige
@schallweller: schau mal hier: viewtopic.php?f=33&t=30454&hilit=WebSocket

Re: Wie mit PB Server kommunizieren?

Verfasst: 19.10.2018 13:21
von schallweller
Ja genau. Haste richtig verstanden. Idealerweise natürlich bidirektional und UDP. Super. Das ist doch schonmal was zum tüfteln. Ich dank dir schonmal dafür.
RSBasic hat geschrieben:Möchtest du vom Client (Browser) was zum Server senden und vom Server empfangen?
Da gibt es Ajax: http://api.jquery.com/jquery.ajax/
In SpiderBasic gibt es HTTPRequest(). Ich weiß nur nicht, ob HTTPRequest() das gleiche ist wie Ajax, aber mit Ajax kannst du auf jeden Fall zwischen Client und Server kommunizieren.
Ich hoffe, ich habe dich richtig verstanden.

Re: Wie mit PB Server kommunizieren?

Verfasst: 19.10.2018 13:36
von schallweller
Okay...soweit klar. HTTP Request ist dann raus. Unidirektional is mir eine Richtung zu wenig, [WINKING FACE] wird dann wohl auf die inline Frickelei hinauslaufen. Die dreckige Lösung... hehe... glaub hab kapiert. Also müsste der Client in regelmäßigen kurzen Abständen eine art "Alive Message" schicken und der server antwortet auf einen der HTTP requests falls daten zum client müssen oder? Werd mich da mal reinlesen. Das könnte ich mir sogar als provisorische Lösung vorstellen.
TroaX hat geschrieben:HTTPRequest ist Ajax. Ajax ist nur ein Szenebegriff (Buzzword), um die asynchronen Server-Anfragen zu beschreiben. HTTP ist allerdings nicht für Echtzeit-Kommunikation geeignet. Dafür müsste endlich die Netzwerk-Bibliothek auf Basis von Websocket implementiert werden: https://de.wikipedia.org/wiki/WebSocket

Ansonsten müsste man das mit einer eigenen JS-Bibliuothek und einem Spiderbasic-Wrapper umsetzen. Mit Inline-Script wäre es mir persönlich zu frickelig. Außerdem muss der Webserver die Anfrage auf eine Socketverbindung verstehen. Ohne Webserver geht es meines Wissens nach nicht.

HTTP ist ein Zustandsloses Protokoll. Es wird zum Webserver eine Verbindung aufgebaut, der Requet-Header gesendet, der Server antwortet und schließt die Verbindung. Persistente Verbindungen hält der Server in der Regel nur, wenn er sich sicher ist, das mehrere Anfragen in Folge an ihn gerichtet werden (Download von Grafiken, Skriptfiles oder Stylesheet-Files). Der Server selbst kann keine Nachrichten an den Client senden. Einzige Möglichkeit wäre ein Long-Polling, wo der Client die bereitschaft für Daten mit einem HTTP-Header signalisiert und der Server die Antwort herauszögert, bis er etwas hat. Ist aber eine ziemlich dreckige Lösung.

Re: Wie mit PB Server kommunizieren?

Verfasst: 19.10.2018 13:37
von schallweller
Nicht schlecht. Danke. Das gugg ich mir mal an.
dige hat geschrieben:@schallweller: schau mal hier: viewtopic.php?f=33&t=30454&hilit=WebSocket

Re: Wie mit PB Server kommunizieren?

Verfasst: 19.10.2018 13:51
von schallweller
Erstmal danke an euch alle. Bestes Forum der Welt. Schon allein deswegen is PB und SB für mich die Nr 1 [GRINNING FACE WITH SMILING EYES]

Na hoffentlich steht die Network Library bei Fred auf der ToDo Liste schön weit oben. Finde SB macht erst dann richtig Sinn wenn das gegeben ist. Remote Control, MIDI over LAN, Tablet als Statusdisplay, etc. etc. da gehn so viele Möglichkeiten flöten ohne Netzwerkkommandos. Aber mal sehn. Vielleicht bekomme ich es anders hin. Wenn ja werde ichs euch mitteilen. Irgendeine Lösung gibts immer.

Re: Wie mit PB Server kommunizieren?

Verfasst: 19.10.2018 14:13
von Kiffi
@schallweller:

wenn Du magst, kannst Du ja auch mal SpiderBite ausprobieren.
Damit kannst Du sowohl den Client-Part in SB als auch den Server-Part (z.B. in PB) in einem Code realisieren.
Weiß nur nicht, inwiefern das Deinem Wunsch nach Echtzeit entspricht.

Grüße ... Peter

Re: Wie mit PB Server kommunizieren?

Verfasst: 01.03.2019 08:39
von stevie1401
Ich habe bis jetzt ein Purebasic - Server, der Websockets versteht.
Das Programm läuft auf einem meiner Rechner und man kann mit Spiderbasic auf den Purebasic-Websocket-Server zugreifen.
Kann ich mit Spiderbyte den Purebasic-Websocket-Server auf meine Homepage legen?