Abo
  • 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. Deloitte, Düsseldorf, München
  2. Schneider Electric GmbH, Marktheidenfeld

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.



Anzeige
Hardware-Angebote
  1. mit Gutschein: HARDWARE50 (nur für Neukunden, Warenwert 104 - 1.000 Euro)
  2. und 20€ Steam-Guthaben geschenkt erhalten

Folgen Sie uns
       


Chuwi Higame im Test

Auf Indiegogo hat das Chuwi Higame bereits mehr als 400.000 US-Dollar erhalten. Der Mini-PC hat dank Kaby Lake G auch das Potenzial zu einem kleinen Multimediawürfel. Allerdings nerven die Lautstärke und ein paar Treiberprobleme.

Chuwi Higame im Test Video aufrufen
Elektroroller-Verleih Coup: Zum Laden in den Keller gehen
Elektroroller-Verleih Coup
Zum Laden in den Keller gehen

Wie hält man eine Flotte mit 1.000 elektrischen Rollern am Laufen? Die Bosch-Tochter Coup hat in Berlin einen Blick hinter die Kulissen der Sharing-Wirtschaft gewährt.
Ein Bericht von Friedhelm Greis

  1. Neue Technik Bosch verkündet Durchbruch für saubereren Diesel
  2. Halbleiterwerk Bosch beginnt Bau neuer 300-mm-Fab in Dresden
  3. Zu hohe Investionen Bosch baut keine eigenen Batteriezellen

Network Slicing: 5G gefährdet die Netzneutralität - oder etwa nicht?
Network Slicing
5G gefährdet die Netzneutralität - oder etwa nicht?

Ein Digitalexperte warnt vor einem "deutlichen Spannungsverhältnis" zwischen der technischen Basis des kommenden Mobilfunkstandards 5G und dem Prinzip des offenen Internets. Die Bundesnetzagentur gibt dagegen vorläufig Entwarnung.
Ein Bericht von Stefan Krempl

  1. T-Mobile US Deutsche Telekom gibt 3,5 Milliarden US-Dollar für 5G aus
  2. Ericsson Swisscom errichtet standardisiertes 5G-Netz in Burgdorf
  3. Masterplan Digitalisierung Niedersachsen will flächendeckende Glasfaserinfrastruktur

Shadow of the Tomb Raider im Test: Lara und die Apokalypse Lau
Shadow of the Tomb Raider im Test
Lara und die Apokalypse Lau

Ein alter Tempel und Lara Croft: Diese Kombination sorgt in Shadow of the Tomb Raider natürlich für gewaltige Probleme. Die inhaltlichen Unterschiede zu den Vorgängern sind erstaunlich groß, aber trotz guter Ideen vermag das Action-Adventure im Test nicht so richtig zu überzeugen.
Ein Test von Peter Steinlechner

  1. Square Enix Systemanforderungen für Shadow of the Tomb Raider liegen vor
  2. Shadow of the Tomb Raider angespielt Lara und die Schwierigkeitsgrade
  3. Remasters Tomb Raider 1 bis 3 bekommen neue Engine

    •  /