Как получить данные датчика через TCP / IP в nodejs?

У меня есть приложение nodejs с socket.io.Чтобы проверить это, сохраните приведенный ниже список как app.js. Установите узел, затем npm, установите socket.io и, наконец, запустите командную строку: узел 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);

Этот код отправляет данные в файл index.html.После запуска app.js откройте этот файл в своем браузере.

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

Данные, отправленные прямо сейчас, являются текущим временем, а index.html работает нормально, обновляет время каждые пять секунд.

Я хочу изменить код так, чтобы он считывал данные моего датчика через TCP. Мои датчики подключены через систему сбора данных и передают данные датчика через IP: 172.16.103.32 порт: 7700. (Это по локальной сети, поэтому не будет доступным для вас.)

Как это можно реализовать в nodejs?

ЯвляетсяSensorMonkey жизнеспособная альтернатива? Если да, то есть ли какие-нибудь советы по его использованию?

Ответы на вопрос(1)

Ваш ответ на вопрос