• IT-Karriere:
  • Services:

Mittler zwischen den Welten

Das letzte Skript läuft nun wieder auf dem Raspberry Pi: Es implementiert die Serverseite des Websockets und fungiert zugleich als BluetoothLE Central, Letzteres hin und wieder auch als Server bezeichnet.

Stellenmarkt
  1. DECATHLON Deutschland SE & Co. KG, Plochingen
  2. GASAG AG, Berlin

Node.js unterstützt - derzeit - keine Websockets direkt, es gibt allerdings mehrere Bibliotheken dafür. Wir benutzen nodejs-websocket. Es ist sehr einfach zu benutzen, bringt aber keine Elemente für komplexere Webanwendungen mit. Hierfür sind unter Node.js zum Beispiel Websocket-Node und TotalJS geeignetere Kandidaten.

Nach Einbindung des Websocket-Moduls wird der Websocket-Server mit createServer() erzeugt, als Parameter übergeben wir eine Callback-Funktion. Sie wird mit einem Connection-Objekt aufgerufen, über das wir die weitere Websocket-Kommunikation abwickeln. Die Callback-Methode wird jedesmal aufgerufen, wenn sich ein Client mit dem Server verbindet. Es reicht also nicht, ein einzelnes Connection-Objekt zu verwalten, sondern es müssen alle einkommenden Objekte verwaltet werden.

Um den Server selbst zu starten, wird dessen Methode listen() mit der Angabe des Ports aufgerufen.

Am Connection-Objekt registrieren wir eine Listener-Funktion für den text-Event mit der Methode on(). Die Listener-Funktion erhält die Daten, welche ein verbundener Client sendet, jeweils als abgeschlossene Zeichenkette. Zum Senden von Daten wird die Methode sendText() verwendet.

  1. var connections = [];
  2. var server = ws.createServer(function (conn) {
  3.  
  4. connections.push(conn);
  5.  
  6. conn.on("text", function (str) {
  7.  
  8. try {
  9. var cmd_data = JSON.parse(str);
  10. } catch(e) {
  11. ...
  12. }
  13.  
  14. if(cmd_data.vol && '' != cmd_data.vol) {
  15. var vol = parseInt(cmd_data.vol);
  16. sendVolume(vol);
  17. return;
  18. }
  19.  
  20. if(cmd_data.cmd && '' != cmd_data.cmd) {
  21. ...
  22. sendCommand(cmd_data.cmd);
  23.  
  24. var message = {
  25. success : true,
  26. cmd = cmd_data.cmd
  27. };
  28.  
  29. conn.sendText(JSON.stringify(message));
  30. return;
  31. }
  32.  
  33. });
  34. }).listen(8001);

Der Bluetooth-Teil auf Basis von Noble enthält soweit keine Überraschungen. Über Noble werden Peripherals gesucht, die unsere spezielle Service-UUID aufweisen. Wurden sie gefunden, können wir mit deren Characteristics arbeiten. Für die Characteristics, welche die Lautstärke und den aktuellen Track übermitteln, werden Abonnements eingerichtet.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Anzeigen und SendenDaten per Websocket austauschen 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14.  


Anzeige
Top-Angebote
  1. 229,99€ + Versand (Vergleichspreis ca. 300€)
  2. 399€ (Vergleichspreis 419€)
  3. (u. a. LG OLED77CX6LA 77 Zoll OLED für 2.899€, LG 43UP75009LF 43 Zoll LCD für 399€)

Anonymer Nutzer 28. Jul 2014

Ich würde sagen hier könnte man eleganter und auch verhältnismäßig preiswert mit Zigbee...

savejeff 24. Jul 2014

perfekt! die Artikel sind echt zeitlos. ich werde noch ein paar Artikel nachholen.

holminger 24. Jul 2014

Meine RasPis dienen einmal als AirPrint-Server für einen 15 Jahre alten Kyocera...

currock63 23. Jul 2014

die guten alten Zeiten der c't, als es noch in fast jeder Ausgabe etwas zum selber...


Folgen Sie uns
       


Xiaomi MiTV Q1 im Test

Für das Streamen von Serien oder den Filmeabend zu Hause reicht der preiswerte Fernseher locker aus.

Xiaomi MiTV Q1 im Test Video aufrufen
Programm für IT-Jobeinstieg: Hoffen auf den Klebeeffekt
Programm für IT-Jobeinstieg
Hoffen auf den Klebeeffekt

Aktuell ist der Jobeinstieg für junge Ingenieure und Informatiker schwer. Um ihnen zu helfen, hat das Land Baden-Württemberg eine interessante Idee: Es macht sich selbst zur Zeitarbeitsfirma.
Ein Bericht von Peter Ilg

  1. Arbeitszeit Das Sechs-Stunden-Experiment bei Sipgate
  2. Neuorientierung im IT-Job Endlich mal machen!
  3. IT-Unternehmen Die richtige Software für ein Projekt finden

Weclapp-CTO Ertan Özdil: Wir dürfen nicht in Schönheit und Perfektion untergehen!
Weclapp-CTO Ertan Özdil
"Wir dürfen nicht in Schönheit und Perfektion untergehen!"

Der CTO von Weclapp träumt von smarter Software, die menschliches Eingreifen in der nächsten ERP-Generation reduziert. Deutschen Perfektionismus hält Ertan Özdil aber für gefährlich.
Ein Interview von Maja Hoock


    Fiat 500 als E-Auto im Test: Kleinstwagen mit großem Potenzial
    Fiat 500 als E-Auto im Test
    Kleinstwagen mit großem Potenzial

    Fiat hat einen neuen 500er entwickelt. Der Kleine fährt elektrisch - und zwar richtig gut.
    Ein Test von Peter Ilg

    1. Vierradlenkung Elektrischer GMC Hummer SUV fährt im Krabbengang seitwärts
    2. MG Cyberster MG B Roadster mit Lasergürtel und Union Jack
    3. Elektroauto E-Auto-Prämie übersteigt in 2021 schon Vorjahressumme

      •  /