Wie man sensor-Daten über TCP/IP in nodejs?

Habe ich eine nodejs-app mit sockel.io. Um dies zu testen, speichern Sie den untenstehenden Auflistung als app.js. Knoten installieren, dann npm install socket.io und schließlich führen Sie von der Eingabeaufforderung aus: Knoten app.js

var http = require('http'),
fs = require('fs'),
//NEVER use a Sync function except at start-up!
index = fs.readFileSync(__dirname + '/index.html');

//Send index.html to all requests
var app = http.createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end(index);
});

//Socket.io server listens to our app
var io = require('socket.io').listen(app);

//Send current time to all connected clients
function sendTime() {
    io.sockets.emit('time', { time: new Date().toJSON() });
}

//Send current time every 10 secs
setInterval(sendTime, 5000);

//Emit welcome message on connection
io.sockets.on('connection', function(socket) {
    socket.emit('welcome', { message: 'Welcome!' });

    socket.on('i am client', console.log);
});

app.listen(3000);

Dieser code sendet Daten an die Datei index.html. Nach dem ausführen des app.js öffnen Sie diese Datei in Ihrem browser.

<!doctype html>
<html>
    <head>
        <script src='http://code.jquery.com/jquery-1.7.2.min.js'></script>
        <script src='http://localhost:3000/socket.io/socket.io.js'></script>
        <script>
            var socket = io.connect('//localhost:3000');

            socket.on('welcome', function(data) {
                $('#messages').html(data.message);

                socket.emit('i am client', {data: 'foo!'});
            });
            socket.on('time', function(data) {
                console.log(data);
                $('#messages').html(data.time);
            });
            socket.on('error', function() { console.error(arguments) });
            socket.on('message', function() { console.log(arguments) });
        </script>
    </head>
    <body>
        <p id='messages'></p>
    </body>
</html>

Werden die Daten gesendet, jetzt ist die aktuelle Zeit und index.html funktioniert einwandfrei, updates der Zeit erfolgt alle fünf Sekunden.

Möchte ich den code ändern, so dass es liest meine sensor-Daten über TCP. Meine sensoren sind verbunden durch ein data-acquisition-system und die relais sind sensor-Daten über IP: 172.16.103.32 port:7700. (Dies ist über LAN, also nicht die für Sie verfügbar sind.)

Wie kann dies umgesetzt werden in nodejs?

Ist SensorMonkey eine gangbare alternative ? Wenn ja, irgendwelche Tipps, wie Sie gehen über es zu benutzen?

  • Also du meinst zu sagen, dass Sie möchten, um Daten zu empfangen, gesendet vom sensor in node.js und wollen Sie Strahlen den Kunden?
  • Genau, und vielleicht auch die Speicherung der Daten in einer DB.
  • Ich denke dein problem kann gelöst werden, wenn Ihre sensoren können irgendwie senden die Daten direkt an eine IP/PORT, wo Sie Ihre node.js server ausgeführt wird. So können Sie die Daten senden, um Kunden von 'Request-Event"
Schreibe einen Kommentar