Wie erhalte ich Sensordaten über TCP / IP in NodeJS?

Ich habe eine nodejs-App mit socket.io.Um dies zu testen, speichern Sie die folgende Auflistung als app.js. Installieren Sie node, dann npm install socket.io und führen Sie schließlich Folgendes an der Eingabeaufforderung aus: node 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.Öffnen Sie diese Datei in Ihrem Browser, nachdem Sie die Datei app.js ausgeführt haben.

<!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>

Die aktuell gesendeten Daten sind die aktuelle Uhrzeit und index.html funktioniert einwandfrei. Die Uhrzeit wird alle fünf Sekunden aktualisiert.

Ich möchte den Code so ändern, dass er meine Sensordaten über TCP liest. Meine Sensoren sind über ein Datenerfassungssystem angeschlossen und leiten die Sensordaten über IP: 172.16.103.32 Port: 7700 weiter. (Dies ist über LAN, wird also nicht für Sie zugänglich.)

Wie kann dies in nodejs implementiert werden?

IstSensorMonkey eine praktikable Alternative? Wenn ja, gibt es Hinweise zur Verwendung?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage