Debuggen von JavaScript mit Vorlon.js aus der Ferne

Vor kurzem auf der // BUILD / 2015 haben wir Vorlon.js vorgestellt - ein offenes, erweiterbares, plattformunabhängiges Open Source-Tool zum Remote-Debuggen und Testen Ihres JavaScript. Ich hatte die Gelegenheit, mit Hilfe einiger talentierter Ingenieure und Tech-Evangelisten bei Microsoft Vorlon.js zu erstellen (die gleichen Typen, die Ihnen Babylon.js gebracht haben)..

Vorlon.js wird von Node.js, Socket.IO und Late-Night-Kaffee betrieben. Ich möchte mit Ihnen teilen, warum wir es erstellt haben und wie Sie es in Ihren eigenen Test-Workflow integrieren können. Außerdem möchten wir Ihnen einige Details zur Konstruktion einer solchen JavaScript-Bibliothek mitteilen.

Warum Vorlon.js?

Vorlon.js unterstützt Sie beim Fernladen, Prüfen, Testen und Debuggen von JavaScript-Code, der auf einem beliebigen Gerät mit einem Webbrowser ausgeführt wird. Unabhängig davon, ob es sich um eine Spielekonsole, ein Mobilgerät oder sogar einen Kühlschrank mit IoT-Anschluss handelt, können Sie bis zu 50 Geräte aus der Ferne anschließen und in jedem oder allen davon JavaScript ausführen. 

Die Idee hier ist, dass Entwickler-Teams auch gemeinsam debuggen können - jede Person kann Code schreiben, und die Ergebnisse sind für alle sichtbar. Wir hatten ein einfaches Motto in diesem Projekt: Kein nativer Code, keine Abhängigkeit zu einem bestimmten Browser, nur JavaScript, HTML und CSS auf den Geräten Ihrer Wahl.

Vorlon.js selbst ist ein kleiner Webserver, den Sie von Ihrem lokalen Computer aus ausführen oder auf einem Server installieren können, auf den Ihr Team zugreifen kann. Er dient dem Vorlon.js-Dashboard (Ihrem Command Center) und kommuniziert mit den Remote-Geräten. 

Die Installation des Vorlon.js-Clients auf Ihrer Website oder App ist so einfach wie das Hinzufügen eines einzelnen Skript-Tags. Es ist auch erweiterbar, sodass Entwickler Plug-Ins schreiben können, die sowohl dem Client als auch dem Dashboard Funktionen hinzufügen, z. B. Featureerkennung, Protokollierung und Ausnahmeverfolgung.

Warum also der Name? Es gibt zwei Gründe. Die erste ist, weil ich einfach verrückt nach Babylon 5 (der TV-Serie) bin. Aus diesem Grund ist der zweite Grund, dass die Vorlonen eine der weisesten und ältesten Rassen im Universum sind und daher als Diplomaten zwischen jüngeren Rassen hilfreich sind. Ihre Hilfsbereitschaft hat uns inspiriert: Für Web-Entwickler ist es immer noch zu schwer, JavaScript zu schreiben, das zuverlässig in den verschiedenen Geräten und Browsern funktioniert. Vorlon.js soll es etwas einfacher machen.

Sie haben erwähnt, dass Vorlon.js über Plug-Ins verfügt?

Vorlon.js wurde so konzipiert, dass Sie das Dashboard und die Clientanwendung einfach erweitern können, indem Sie zusätzliche Plugins schreiben oder installieren. Sie können das Dashboard vergrößern oder verkleinern, um bidirektional mit der Clientanwendung zu kommunizieren. Zunächst gibt es drei Plug-Ins:

Konsole

Protokollierung: Auf der Registerkarte "Konsole" werden Konsolennachrichten vom Client an das Dashboard übertragen, das Sie zum Debuggen verwenden können. Alles, was mit angemeldet ist console.log (), console.warn () oder console.error () erscheint im Dashboard. Wie F12 Dev Tool DOM-Explorer: Sie können die DOM-Struktur anzeigen, einen Knoten auswählen (der auf dem Gerät hervorgehoben wird, und die CSS-Eigenschaften aktualisieren oder neue hinzufügen)..

Interaktivität: Sie können auch mit der entfernten Webseite interagieren, indem Sie Code in die Eingabe eingeben. Der eingegebene Code wird im Kontext der Seite ausgewertet.

DOM Explorer

Der DOM-Inspector zeigt Ihnen das DOM der Remote-Webseite. Sie können das DOM überprüfen, indem Sie auf Knoten klicken, um sie auf der Host-Webseite hervorzuheben. Wenn Sie einen auswählen, können Sie auch dessen CSS-Eigenschaften anzeigen und ändern.

Modernizr

Auf der Registerkarte Modernizr werden die unterstützten Browserfunktionen angezeigt, die von Modernizr gemeldet wurden. Sie können dies verwenden, um zu bestimmen, welche Funktionen tatsächlich verfügbar sind. Dies kann besonders bei ungewöhnlichen mobilen Geräten oder Dingen wie Spielekonsolen hilfreich sein.

Wie benutze ich es?

Führen Sie in Ihrer Knotenbefehlszeile Folgendes aus:

$ npm i -g vorlon $ vorlon

Jetzt haben Sie einen Server auf Ihrem localhost auf Port 1337. Um Zugriff auf das Dashboard zu erhalten, navigieren Sie einfach zu http: // localhost: 1337 / dashboard / SESSIONID, wo SESSION-ID ist die ID für die aktuelle Dashboard-Sitzung. Dies kann eine beliebige Zeichenfolge sein.

Sie müssen dann in Ihrem Kundenprojekt eine einzelne Referenz hinzufügen:

Bitte beachte, dass SESSION-ID kann weggelassen werden und in diesem Fall wird es automatisch durch "default" ersetzt. 

Und das ist es! Jetzt sendet Ihr Client die Debug-Informationen nahtlos an Ihr Dashboard. Betrachten wir nun ein Beispiel mit einer echten Site. 

Debuggen von Babylonjs.com mit Vorlon.js

Verwenden wir für unser Beispiel http://www.babylonjs.com/. Zuerst muss ich meinen Server starten (mit dem Knoten start.js im /Server Mappe). Dann muss ich nur diese Zeile zu meiner Kundenwebsite hinzufügen:

 

Denn ich definiere keine SESSION-ID, Ich kann einfach auf http: // localhost: 1337 / Dashboard gehen. Das Dashboard sieht folgendermaßen aus:

Randnotiz: Der oben gezeigte Browser ist Microsoft Edge (früher bekannt als Project Spartan), der neue Browser von Microsoft für Windows 10. Sie können Ihre Web-Apps auch auf Ihrem Mac, iOS, Android oder Windows-Gerät @ http: // dev remote testen .modern.de /. Oder versuchen Sie es auch mit Vorlon.js.

Back to it: Ich kann beispielsweise Konsolenmeldungen sehen, was nützlich ist, wenn ich Babylon.js auf mobilen Geräten (wie iOS, Android oder Windows Phone) debugge. Ich kann im DOM Explorer auf einen beliebigen Knoten klicken, um Informationen zu CSS-Eigenschaften zu erhalten:

 Auf der Clientseite ist der ausgewählte Knoten mit einem roten Rahmen markiert:

Außerdem kann ich auf die wechseln Modernizr Registerkarte, um die Fähigkeiten meines spezifischen Geräts anzuzeigen:

Auf der linken Seite sehen Sie die Liste der aktuell verbundenen Clients und Sie können die verwenden Identifizieren Sie einen Kunden Taste, um eine Nummer auf jedem angeschlossenen Gerät anzuzeigen.

Ein wenig mehr darüber, wie wir Vorlon.js gebaut haben

Wir wollten von Anfang an sicher sein, dass Vorlon.js so bleibt mobil zuerst und Plattform-Agnostiker wie möglich. Daher haben wir uns entschlossen, Open Source-Technologie einzusetzen, die in einer größeren Anzahl von Umgebungen funktioniert.

Unsere Entwicklerumgebung war die Visual Studio Community, die Sie jetzt kostenlos erhalten können. Wir haben die Node.js-Tools für Visual Studio und Azure für das Back-End verwendet. Unser Frontend war JavaScript und TypeScript. Wenn Sie mit TypeScript nicht vertraut sind, können Sie in diesem Blogbeitrag erfahren, warum wir Babylon.js damit erstellt haben. Kürzlich wurde Angular 2 mit TypeScript erstellt. Sie müssen es jedoch nicht wissen, um Vorlon.js verwenden zu können.

Hier ist ein globales Schema, wie es funktioniert:

 Hier sind die Teile, mit denen wir es gebaut haben:

  • Ein Node.js-Server hostet eine Dashboard-Seite (die mit Express bereitgestellt wird) und einen Dienst.
  • Der Dienst verwendet Socket.IO, um eine direkte Verbindung sowohl zum Dashboard als auch zu den verschiedenen Geräten herzustellen.
  • Geräte müssen auf eine einfache Vorlon.js-Seite verweisen, die vom Server bereitgestellt wird. Es enthält den Clientcode aller Plugins, der mit dem Clientgerät interagiert und über den Server mit dem Dashboard kommuniziert.
  • Jedes Plug-In besteht aus zwei Teilen:
    • Auf der Clientseite werden Informationen erfasst und mit dem Gerät interagiert
    • Auf der Dashboard-Seite wird ein Befehlsbereich für das Plugin im Dashboard erstellt

Beispielsweise funktioniert das Konsolen-Plugin folgendermaßen:

  • Die Client-Seite generiert einen Hook über console.log (), console.warn () oder console.error (). Mit diesem Hook werden die Parameter dieser Funktionen an das Dashboard gesendet. Es kann auch Aufträge von der Dashboard-Seite erhalten, die es auswerten wird.
  • Die Dashboard-Seite sammelt diese Parameter und zeigt sie im Dashboard an.

Das Ergebnis ist einfach eine Remote-Konsole:

Auf der Vorlon.js-Website erhalten Sie ein noch besseres Verständnis der Erweiterbarkeit von Vorlon.js, einschließlich der Erstellung eigener Plug-Ins.

Was kommt als nächstes?

Vorlon.js basiert auf der Idee von Erweiterbarkeit. Wir ermutigen Sie, einen Beitrag zu leisten! Wir denken bereits darüber nach, wie wir Vorlon.js in Browser-Entwicklungstools sowie in das Web Audio-Debugging integrieren könnten.

Wenn Sie es ausprobieren möchten, sind Sie nur einen Klick entfernt: vorlonjs.com. Und die technischen Dokumente finden Sie auf unserem GitHub.

Weitere praktische Übungen mit JavaScript

Es mag Sie ein wenig überraschen, aber Microsoft bietet eine Reihe von kostenlosen Informationen zu vielen Open Source-JavaScript-Themen. Wir haben uns vorgenommen, mit Microsoft Edge viel mehr zu schaffen. Schauen Sie sich meine eigenen an:

  • Einführung in WebGL 3D mit HTML5 und Babylon.JS
  • Erstellen einer Einzelseitenanwendung mit ASP.NET und AngularJS
  • Schneide Grafiken in HTML

Oder die Lernreihe unseres Teams:

  • Praktische Tipps zur Leistung, um Ihr HTML / JavaScript schneller zu machen (eine siebteilige Serie vom responsiven Design über Gelegenheitsspiele bis hin zur Leistungsoptimierung)
  • The Modern Web Platform Jump Start (Grundlagen von HTML, CSS und JS)
  • Universelle Windows-App mit HTML und JavaScript entwickeln Jump Start (Verwenden Sie zum Erstellen einer App die bereits erstellte JS).

Und einige kostenlose Tools: Visual Studio Community, Azure Trial und Cross-Browser-Testtools für Mac, Linux oder Windows.

Dieser Artikel ist Teil der Web-Dev-Tech-Serie von Microsoft. Wir freuen uns zu teilen Microsoft Edge und das Neue EdgeHTML-Rendering-Engine mit dir. Erhalten Sie kostenlose virtuelle Maschinen oder testen Sie remote auf Ihrem Mac, iOS, Android oder Windows-Gerät. http://dev.modern.ie/.