Testen der IBM Cloud-Plattform am Beispiel von Chat

  • Tutorial

Kürzlich habe ich einen IBM-Techniker getroffen, der mir von den Möglichkeiten der relativ neuen IBM Bluemix-Plattform erzählte, die dem Entwickler das Leben erleichtern soll. Am Beispiel eines einfachen Chats habe ich mich entschlossen, diese Aussage zu überprüfen.



Hintergrund


Zuvor war meine Erfahrung mit der Plattform nahezu null. Um die Vielzahl der Plattformservices zu verstehen, habe ich mich erneut an meinen Freund von IBM gewandt. Es schien mir naheliegend, den Message Hub-Dienst zu verwenden, aber am Ende stellte sich heraus, dass MQ Light für die Lösung unseres Problems besser geeignet ist. Die Hauptgründe:
  • Tarif kostenlos 10 Tausend Nachrichten pro Monat
  • gute Skalierbarkeit
  • einfach zu bedienende API



Wir haben auch die Option in Betracht gezogen, den IoT Foundation-Dienst zu verwenden. Es stellte sich jedoch heraus, dass Geräte keine anderen Ereignisse als Befehle abonnieren und auch keine tatsächlichen Befehle senden können. Es stellt sich heraus, dass wir die Daten senden können, wie wir wollen, und nur in Form von Befehlen empfangen können.

Kommen wir zum IBM Bluemix Dashboard.

Registrieren Sie einen Cloud-Dienst


Da wir für den Chat keine Wrapper auf der Serverseite benötigen, müssen wir nur den Dienst registrieren und Daten für die Verbindung empfangen.

Wir gehen in die Kontrollleiste und klicken auf "Dienste oder APIs verwenden":


Wir suchen nach MQ Light:


Und wir nehmen eines davon für uns.


Kehren Sie zum Dashboard zurück und wählen Sie MQ Light - Service Credentials. Wir erstellen Daten für die Autorisierung unserer Anwendungen.


Wir erhalten :

Überprüfen Sie im Voraus das Vorhandensein von ";" in Login und Passwort. Der Compiler wird es nicht sehr mögen, es ist besser, ein neues Paar zu generieren.

Erstellen Sie eine Desktop-Anwendung


Da wir schnell eine funktionierende Anwendung erstellen müssen, verwenden wir Node.JS und installieren die MQ Light-Bibliothek.
npm install mqlight


... und öffnen Sie unsere Entwicklungsumgebung. Zunächst müssen Sie die Bibliothek verbinden:
var mqlight = require('mqlight');


Um nun einen Echtzeit-Chat zu erstellen, müssen wir mit Daten arbeiten, die von der Konsole eingegeben werden. Dafür ist die Standardbibliothek aus dem Node.JS-Set - readline perfekt.
var readline = require('readline');


Fügen Sie einige Variablen für MQ Light hinzu.
var TOPIC = "mqlight/simplechat"; 
var SHARE_ID = "";
var opts = {
  service: 'connectionLookupURI', //Данные из предыдущего этапа
  user: 'username',
  password: 'password'
};


Und vergessen Sie nicht die Eingabe / Ausgabe:
var rl = readline.createInterface(process.stdin, process.stdout);


Als nächstes fragen wir beim Start nach einem Spitznamen und abonnieren den Kanal mit einem Spitznamen in der Freigabe-ID:
Versteckter Text
mqlightClient.on('started', function() {
  rl.question("Please, choose your nickname: ", function(result) {
    SHARE_ID = result;
    console.log("Welcome,", SHARE_ID, "!");
    rl.setPrompt(SHARE_ID + '> ');
    mqlightClient.subscribe(TOPIC, SHARE_ID, 
    { credit : 5,
      autoConfirm : true,
      qos : 0}, 
    function(err) {
      if (err) console.error("Failed to subscribe: " + err); 
      else {
        console.log("Subscribed to " + TOPIC);
        rl.prompt();
      }
    });
  });
});


Wir verarbeiten den Empfang der Nachricht (Ereignis 'message' in MQ Light) und senden die Nachricht (wir erfassen das Ereignis 'line' in readline):
Versteckter Text
mqlightClient.on('message', function(data, delivery) {
  data = JSON.parse(data);
  if (data.id != SHARE_ID) {
    readline.clearLine(process.stdout, 0);
    rl.setPrompt(data.id + '> ');
    rl.prompt();
    console.log(data.message + '                 ');
    rl.setPrompt(SHARE_ID + '> ');
    rl.prompt();
  }
});
rl.on('line', function(message) {
  if(message != "") {
    var data = JSON.stringify({
      id: SHARE_ID,
      message: message
    });
    mqlightClient.send(TOPIC, data, {
      ttl: 60*60*1000
    });
    rl.prompt();
  }
});


Die Anwendung ist fertig. Beim Start wird versucht, eine Verbindung zu den IBM Servern herzustellen, dann nach einem Kurznamen zu fragen und den Kanal / mqlight / simplechat mit dem Kurznamen als SHARE-ID zu abonnieren. Es dauerte nur 64 Zeilen! Es scheint ein sehr gutes Ergebnis für einen Abend zu sein.

Testen


Überprüfen Sie, ob alles funktioniert:


Profit! Und so sieht es im Control Panel aus:


Fazit


Nun zu den Ergebnissen.
  • 64 Codezeilen
  • Das Befolgen der Anweisungen zum Erstellen eines Chats dauert 20-30 Minuten
  • Plattformdienste reduzieren ~ 40% der Zeit, da Sie den Server erhöhen und Code für das Back-End schreiben müssen
  • Ein zusätzliches Plus ist, dass Daten mit TLS verschlüsselt übertragen werden


Also haben wir die Aufgabe gelöst: in nur einem Abend einen Chat mit minimalen Ressourcen zu erstellen. Mit Hilfe von IBM Bluemix können Sie schnell Anwendungen beliebiger Komplexität erstellen, indem Sie viele vorgefertigte Services und APIs verwenden. Nun, Cloud-Technologien entwickeln sich und in Zukunft kann die Arbeit eines Programmierers viel einfacher und interessanter werden, aber was denken Sie?

Jetzt auch beliebt: