我正在为 socket.io、express 和 node.js 苦苦挣扎。
我将数据从 Arduino 发送到我的 cmd。这是通过串行端口库完成的。但现在我希望这些数据显示在我的网络浏览器上。我正在为此使用 express 库。我index.js
这里是与arduino和浏览器的连接。还有一个 index.html
我有这个代码:
来自 index.js(node.js 服务器)的代码:
var express = require('express'),
app = express(),
server = require('http').Server(app),
io = require('socket.io')(server),
port = 8888;
//Server start
server.listen(port, () => console.log('on port' + port))
//user server
app.use(express.static(__dirname + '/public'));
io.on('connection', onConnection);
var connectedSocket = null;
function onConnection(socket){
connectedSocket = socket;
}
//Arduino to CMD
const SerialPort = require('serialport');
const Readline = SerialPort.parsers.Readline;
const usbport = new SerialPort('COM4');
const parser = usbport.pipe(new Readline());
parser.on('data', console.log);
从串口 (Arduino) 接收的数据必须显示在 index.html (webbrowser) 中。我已经尝试了一些东西,但它不起作用。它必须打印在<p></p>
html 代码中。
index.html
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="/socket.io/socket.io.js"></script>
</head>
<body>
<div id="text">
<p></p>
</div>
<script>
var text = document.getElementById('text');
var socket = io.connect('http://localhost:8888');
socket.on('data', function(message) {
text.innerHTML = message.data;
});
</script>
</body>
</html>