Wie mit PB Server kommunizieren?

Hier könnt ihr alle Fragen zu SpiderBasic austauschen.
schallweller
Beiträge: 15
Registriert: 07.08.2012 15:58

Wie mit PB Server kommunizieren?

Beitrag 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.
Purebasic & MIDI - Das taugt!!
Wem meine Musik gefällt - ich freu mich über jeden Download / Kommentar
https://soundcloud.com/schallweller
RSBasic
Admin
Beiträge: 7881
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Wie mit PB Server kommunizieren?

Beitrag 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.
BildBildBildBild BildBild
Benutzeravatar
TroaX
Beiträge: 524
Registriert: 08.03.2013 14:27
Wohnort: ERB

Re: Wie mit PB Server kommunizieren?

Beitrag 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.
PC: AMD Ryzen 9 3950X | 64 GB RAM | RTX 3060 TI | 2,5 TB NVMe SSD | 2 TB SATA SSD | WIN 10 | 3x FHD Display
Mobil: AMD Ryzen 7 4800H | 16 GB RAM | GTX 1650 TI | 1 TB NVMe SSD | Win 10
Server: MSI Cubi N | Pentium Silver N5000 | 8 GB RAM | 1 TB HDD | Debian/Yunohost + Nextcloud
Programmierung: PureBasic | B4J | B4A | PHP | Python
Benutzeravatar
dige
Beiträge: 1070
Registriert: 08.09.2004 08:53

Re: Wie mit PB Server kommunizieren?

Beitrag von dige »

@schallweller: schau mal hier: viewtopic.php?f=33&t=30454&hilit=WebSocket
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
schallweller
Beiträge: 15
Registriert: 07.08.2012 15:58

Re: Wie mit PB Server kommunizieren?

Beitrag 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.
Purebasic & MIDI - Das taugt!!
Wem meine Musik gefällt - ich freu mich über jeden Download / Kommentar
https://soundcloud.com/schallweller
schallweller
Beiträge: 15
Registriert: 07.08.2012 15:58

Re: Wie mit PB Server kommunizieren?

Beitrag 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.
Purebasic & MIDI - Das taugt!!
Wem meine Musik gefällt - ich freu mich über jeden Download / Kommentar
https://soundcloud.com/schallweller
schallweller
Beiträge: 15
Registriert: 07.08.2012 15:58

Re: Wie mit PB Server kommunizieren?

Beitrag 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
Purebasic & MIDI - Das taugt!!
Wem meine Musik gefällt - ich freu mich über jeden Download / Kommentar
https://soundcloud.com/schallweller
schallweller
Beiträge: 15
Registriert: 07.08.2012 15:58

Re: Wie mit PB Server kommunizieren?

Beitrag 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.
Purebasic & MIDI - Das taugt!!
Wem meine Musik gefällt - ich freu mich über jeden Download / Kommentar
https://soundcloud.com/schallweller
Benutzeravatar
Kiffi
Beiträge: 10442
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Wie mit PB Server kommunizieren?

Beitrag 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
"tja" – a German reaction to the apocalypse, Dawn of the Gods, nuclear war, an alien attack or no bread in the house
stevie1401
Beiträge: 597
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Wie mit PB Server kommunizieren?

Beitrag 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?
Ich programmiere plattformunabhängig und suche immer Lösungen für alle Plattformen.
Win 7/10, Linux Mint Cindy 3 (Debian), Mint 18.3 / 19.1
Antworten