• IT-Karriere:
  • Services:

Qt Developer Days 2014: Javascript-Clients für Qt-Server-Software

Qtwebchannel ermöglicht C++-Anwendungen die Kommunikation mit Javascript-Clients, die Objekte wiederverwenden können. Dank Websockets kann das Projekt theoretisch auf Sprachen wie Python oder Ruby erweitert werden.

Artikel veröffentlicht am ,
Qt Webchannel verbindet C++ mit Web-Anwendungen.
Qt Webchannel verbindet C++ mit Web-Anwendungen. (Bild: qt.io)

Um die Fülle der Javascript-Frameworks einfach in Verbindung mit komplexen Qt-Anwendungen zu verwenden, kann mit dem Ende dieses Jahres erwarteten Qt 5.4 das Webchannel-Modul genutzt werden. Das Projekt ermöglicht die Kommunikation zwischen Javascript-Clients und Qt-Anwendungen und ist für einen KDAB-Kunden entstanden, wie Mitentwickler Milian Wolff erklärt, der es auf den diesjährigen Qt Developer Days vorstellt. Der Kunde habe für die grafische Darstellung auf Webtechniken zurückgreifen und Objekte aus dem C++-Backend weiterverwenden wollen.

Stellenmarkt
  1. Knipping Kunststofftechnik Gessmann GmbH, Gummersbach
  2. Dataport, verschiedene Standorte

Qt Webchannel kann zur Kommunikation zwischen Client und Server-Anwendungen eingesetzt werden, wobei sowohl Text als auch Binärobjekte gesendet und empfangen werden können. Zur Übertragung der Daten zwischen Backend und Anwendung selbst können entweder Websockets oder auch die Interprozesskommunikation (IPC) genutzt werden, die in den Multi-Prozessarchitekturen von Webkit 2 sowie dem Google-Fork Blink vorhanden sind.

Objekte mit Methoden und Eigenschaften überführen

Die Webchannel-Technik erlaubt dabei das Weiterleiten eines QObjects samt Methoden, Signalen und Eigenschaften durch eine Serialisierung des Metaobjects, das den Zugriff auf die eben genannten Dinge ermöglicht. Auf der Seite des Clients wird aus diesen Daten ein dynamisches Javascript-Objekt erzeugt, das die API des Server-Objekts spiegelt.

Im Javascript Client können so die Eigenschaften gelesen oder mit neuen Werten besetzt werden. Zudem lässt sich eine Methode aufrufen, die auf dem Server ausgeführt wird, und der Client erhält dann den Rückgabewert. Darüber hinaus können Javascript-Funktionen genutzt werden, um den Client mit einem Qt-Signal zu verbinden. Die Umsetzung dieser Möglichkeiten erfordert neben dem Einfügen der bereitgestellten Javascript-Bibliothek aber noch vergleichsweise viel eigene Programmierarbeit, was sich in Zukunft jedoch ändern soll, wie Wolff versichert.

Der Javascript-Client kann derzeit in einer Anwendung mittels QtWebkit oder auch einem beliebigen Browser verwendet werden. Eine Client-Implementierung im QML mit QtQuick2, die auf Websockets aufbaut, ist ebenso möglich. Mit der neuen auf Blink basierenden Qt Webengine werde die Technik offiziell erst mit Qt 5.5 im nächsten Jahr genutzt werden können, da die Entwickler die Frist zum Einreichen neuer Funktionen in Qt 5.4 knapp verpasst hätten, so Wolff.

In seinem Vortrag demonstriert Wolff außerdem einen Webchannel-Client, der auf Node.js basiert, sowie die Verwendung mehrerer Clients, die sich mit dem gleichen Server verbinden. Neben Codeoptimierungen sind weitere neue Funktionen geplant, wie die Unterstützung von Qt Webview für Android und iOS in Qt 5.5. Wolff kann sich allerdings auch vorstellen, dass die Client-Funktionen für weitere Programmiersprachen wie etwa Python oder Ruby geschrieben werden, da die Websockets eine einfache Möglichkeit dafür böten.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Spiele-Angebote
  1. 59,99€
  2. 1,99€
  3. 2,99€
  4. 4,26€

Folgen Sie uns
       


Remnant from the Ashes - Test

In Remnant: From the Ashes sterben wir sehr oft. Trotzdem ist das nicht frustrierend, denn wir tun dies gemeinsam mit Freunden. So macht der Kampf in der Postapokalypse gleich mehr Spaß.

Remnant from the Ashes - Test Video aufrufen
Bosch-Parkplatzsensor im Test: Ein Knöllchen von LoRa
Bosch-Parkplatzsensor im Test
Ein Knöllchen von LoRa

Immer häufiger übernehmen Sensoren die Überwachung von Parkplätzen. Doch wie zuverlässig ist die Technik auf Basis von LoRa inzwischen? Golem.de hat einen Sensor von Bosch getestet und erläutert die Unterschiede zum Parking Pilot von Smart City System.
Ein Test von Friedhelm Greis

  1. Automated Valet Parking Daimler und Bosch dürfen autonom parken
  2. Enhanced Summon Teslas sollen künftig ausparken und vorfahren

Surface Laptop 3 (15 Zoll) im Test: Das 15-Zoll-Macbook mit Windows 10 und Ryzen
Surface Laptop 3 (15 Zoll) im Test
Das 15-Zoll-Macbook mit Windows 10 und Ryzen

Was passiert, wenn ein 13-Zoll-Notebook ein 15-Zoll-Panel erhält? Es entsteht der Surface Laptop 3. Er ist leicht, sehr gut verarbeitet und hat eine exzellente Tastatur. Das bereitet aber nur Freude, wenn wir die wenigen Anschlüsse und den recht kleinen Akku verkraften können.
Ein Test von Oliver Nickel

  1. Surface Laptop 3 mit 15 Zoll Microsoft könnte achtkernigen Ryzen verbauen

Neuer Streamingdienst von Disney: Disney+ ist stark bei Filmen und schwach bei Serien
Neuer Streamingdienst von Disney
Disney+ ist stark bei Filmen und schwach bei Serien

Das Hollywoodstudio Disney ist in den Markt für Videostreamingabos eingestiegen. In den USA hat es beim Start von Disney+ technische Probleme gegeben. Mit Blick auf inhaltliche Vielfalt kann der Dienst weder mit Netflix noch mit Amazon Prime Video mithalten.
Von Ingo Pakalski

  1. Videostreaming im Abo Disney+ hat 10 Millionen Abonnenten
  2. Disney+ Disney bringt seinen Streaming-Dienst auf Fire-TV-Geräte
  3. Streaming Disney+ startet am 31. März 2020 in Deutschland

    •  /