Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Mini web service

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Mini web service

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      stoffel67 last edited by

      Hallo,

      ich wollte einen kleinen web Server einrichten, der zunächst einfach nur "hört" wenn ein Client etwas schickt…

      var net = require('net');
      var host='127.0.0.1';
      var port=9876;
      var textChunk = '';
      var server = net.createServer(function(socket) {
          console.log("Starte Server...");
      	socket.write('Echo server\r\n');
      	socket.on('data', function(data){
      		console.log(data);
      		textChunk = data.toString('utf8');
      		console.log(textChunk);
      		socket.write(textChunk);
      	});
      });
      server.listen(port,host);
      
      

      starte ich das script, dann bekomme ich folgenden Fehlermeldung:
      ` > javascript.0 2018-03-05 09:25:04.846 error at process._tickCallback (internal/process/next_tick.js:104:9)

      javascript.0 2018-03-05 09:25:04.846 error at _combinedTickCallback (internal/process/next_tick.js:83:11)

      javascript.0 2018-03-05 09:25:04.846 error at net.js:1408:9

      javascript.0 2018-03-05 09:25:04.846 error at listen (net.js:1298:10)

      javascript.0 2018-03-05 09:25:04.846 error at Server._listen2 (net.js:1262:14)

      javascript.0 2018-03-05 09:25:04.846 error at exports._exceptionWithHostPort (util.js:1043:20)

      javascript.0 2018-03-05 09:25:04.846 error at Object.exports._errnoException (util.js:1020:11)

      javascript.0 2018-03-05 09:25:04.846 error Error: listen EADDRINUSE 127.0.0.1:9876

      javascript.0 2018-03-05 09:25:04.844 error uncaught exception: listen EADDRINUSE 127.0.0.1:9876 `

      mir ist nicht klar, warum der Server nicht startet,

      ist es nicht möglich, mehrere "Services" mit unterschiedlichen Ports zu starten/laufen zu lassen?

      wo ist mein Denkfehler?

      1 Reply Last reply Reply Quote 0
      • Jey Cee
        Jey Cee Developer last edited by

        Also erstmal hast du geschaut ob der port überhaupt frei ist?

        Dann wie oft hast du das Skript gestartet bevor die Meldung kam?

        Es ist so das der Listener auch dann weiter läuft wenn du das Skript beendest. Du musst dir also einen "Schalter" bauen mit dem du den Listener beenden kannst.

        1 Reply Last reply Reply Quote 0
        • S
          stoffel67 last edited by

          das passiert gleich beim ersten mal…

          Ohh, das wußte ich nicht,

          Port ist sicher frei...auf dem Raspberry (meinem ioBroker Rechner )

          aber wie mache ich das mit dem "Schalter"?

          wie beende ich den listener?

          1 Reply Last reply Reply Quote 0
          • Jey Cee
            Jey Cee Developer last edited by

            Du musst was in die Richtung bauen:

            ({id: "javascript.0.stopListener", val: true}
            	,function(){ server.close(log('Listener gestoppt')
            	})
            

            Außerdem solltest du statt deines "socket.on" in der Server Deklaration "server.on" außerhalb verwenden.

            Darüber hinaus ist auf console.log zu verzichten und nur log zu verwenden, da die Formatierung im Admin Log sonst fehlt.

            var net = require('net');
            var host='127.0.0.1';
            var port=9876;
            var textChunk = '';
            var server = net.createServer(function(socket) {
                log("Starte Server...");
               socket.write('Echo server\r\n');
            });
            server.listen(port,host);
            
            server.on('data', function(data){
                  log(data);
                  textChunk = data.toString('utf8');
                  log(textChunk);
                  server.write(textChunk);
               });
            

            Was gibt den

            netstat -an |grep LISTEN
            

            aus?

            1 Reply Last reply Reply Quote 0
            • S
              stoffel67 last edited by

              netstat -an…

              gibt folgendes aus:

              pi@raspberrypi:/opt/iobroker/etc $ netstat -an |grep LISTEN

              tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN

              tcp 0 0 127.0.0.1:9001 0.0.0.0:* LISTEN

              tcp 0 0 127.0.0.1:9876 0.0.0.0:* LISTEN

              tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

              tcp6 0 0 :::8081 :::* LISTEN

              tcp6 0 0 :::8082 :::* LISTEN

              tcp6 0 0 :::8084 :::* LISTEN

              tcp6 0 0 :::22 :::* LISTEN

              d.h. da läuft noch eine listener?

              1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators last edited by

                Die Suche im Forum nach 9876 bringt ein paar Ergebnisse, wobei ich nicht weiß ob das etwas für dich ist.

                Gruß

                Rainer

                1 Reply Last reply Reply Quote 0
                • S
                  stoffel67 last edited by

                  > Die Suche im Forum nach 9876 bringt ein paar Ergebnisse, wobei ich nicht weiß ob das etwas für dich ist. nein, habe nix mit "broadlink" zu tun…

                  ich habe auch schon einen anderen Port genommen...

                  auch mit deinem Code tut sich nix...

                  1 Reply Last reply Reply Quote 0
                  • Jey Cee
                    Jey Cee Developer last edited by

                    @stoffel67:

                    ich habe auch schon einen anderen Port genommen…

                    auch mit deinem Code tut sich nix... `

                    Es kommt aber kein Fehler oder?

                    Was sollte sich den tun? Schwierig zu sagen wo das Problem liegt wenn man keine Ahnung hat was passieren sollte.

                    Kannst du den an deinem Client sehen ob er eine Nachricht verschickt und ob er eine Antwort bekommt.

                    Gut möglich das einfach keine Ausgabe erfolgt trotz funktionierender Verbindung.

                    1 Reply Last reply Reply Quote 0
                    • S
                      stoffel67 last edited by

                      nein, jetzt kommt kein Fehler, der Server scheint zu laufen,

                      aber auf der Client Seite ( einfacher Test mit putty)

                      bekomme ich ein .. Connection refused…

                      1 Reply Last reply Reply Quote 0
                      • S
                        stoffel67 last edited by

                        hab jetzt Javascript neu gestartet…

                        jetzt bekomme ich am Client das "Echo Server", aber alles was ich am Client eintippe, kommt nicht am Server an...

                        server.on('data', function(data){
                              log(data.toString);
                              textChunk = data.toString('utf8');
                              log(textChunk);
                              server.write(textChunk);
                           });
                        
                        

                        müßte doch jetzt die Zeichen vom Client ausgeben…?

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        687
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        504
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo