6.1 Kommunikation
6.1.1 Einleitung
Die Kommunikation zwischen den Clients in all ihren Facetten und dem frei gestaltbaren modalen Dialog wird über Callback-Mechanismen vollzogen. Speziell für den enaio® webclient wird über window.postMessage() (postMessages) eine Cross-Origin-Kommunikation zwischen dem Window-Objekt des enaio® webclient und dem iFrame des modalen Dialoges sicher nutzbar. Um die Anbindung einfach nutzbar zu machen, wird eine Kommunikationsbibliothek bereitgestellt, die diese Kommunikation übernimmt und zudem eine Kompatibilität zwischen den Clients bietet.
Die Kommunikationsbibliothek ist pflichtmäßig bei neuen Projekten zu verwenden!
6.1.2 Kommunikation Clients ↔ modaler Dialog
Um die Kommunikation so einfach wie möglich zu gestalten, steht Ihnen eine Kommunikationsbibliothek zur Einbindung in den modalen Dialog zur Verfügung. Die Bibliothek besteht aus drei Javascript-Dateien und übernimmt sämtliche Kommunikation via Callback-Mechanismen mit den Clients. Sie verfügt über eine Kompatibilitätsschicht, sodass die angebotenen Methoden mit dem enaio® client sowie dem enaio® webclient verwendet werden können. Bei der Kommunikationsbibliothek handelt es sich um dieselbe wie bei den Dashlets. Sie beinhaltet somit auch Events und Methoden zur Dashlet-Programmierung, die jedoch einen Fehler in den Entwicklertools ausgeben, wenn sie diese aus einem modalen Dialog aufrufen. Grund für die gemeinsame Kommunikationsbibliothek ist, dass sich beide Technologien sehr ähneln und zukünftig mehr und mehr Funktionalitäten parallel anbieten werden. Die Veröffentlichung zweier Kommunikationsbibliotheken würde unnötige Verwirrung und Unsicherheit mit sich bringen ob sich auch wirklich die richtige im Einsatz befindet.
6.1.3 Einbinden der Kommunikationsbibliothek
Die neueste Version ist auf NPM verfügbar. Wir empfehlen die Installation über NPM und die Integration der Bibliothek in den modalen Dialog.
>> Kommunikationsbibliothek aus dem NPM Registery herunterladen
Eine Anleitung zur Einrichtung und Verwendung finden Sie direkt auf der Seite der NPM-Kommunikationsbibliothek.
6.1.4 Kompatibilität zum enaio® client
Die Kommunikation des modalen Dialoges vom enaio® webclient und vom enaio® client unterscheiden sich durch die Asynchronität der Aufrufe. Während alle Methoden beim enaio® webclient asynchron sind, sind sie beim enaio® client synchron. Da in Javascript jedoch auch synchrone Aufrufe mittels await aufgerufen werden können, sind in der Kommunikationsbibliothek alle Methoden asynchron konzipiert. Vereinzelt, insbesondere bei der Callback-Methode zur Initialisierung, können Unterschiede in den zurückgegebenen Daten existieren. Auf diese wird jedoch bei der jeweiligen Methode oder bei dem jeweiligen Event explizit hingewiesen.
6.1.5 Versionshistorie der Kommunikationsbibliothek
Die Kommunikationsbibliothek wird von der Dashlet API sowie der ModalDialog API verwendet.