为什么我不能在socket.io连接中使用serialport.on?它没有给我任何错误,但它也没有打印任何东西。如果我将它移到socket.io块之外,它可以正常工作,但在这种情况下我不知道如何通过套接字发送数据。任何想法如何解决这个问题?
// socket connection
io.sockets.on('connection', function(socket){
console.log('User Connected');
// socket disconnection
socket.on('disconnect', function(){
console.log('User disconnected!');
});
// serialport connection. (NOT WORKING WHEN INSIDE THE SOCKET BLOCK)
serialport.on("open", function () {
console.log('open');
serialport.on('data', function(data) {
console.log('data received: ' + data);
});
});
});
答案 0 :(得分:0)
好的,所以我明白了。您必须首先使用serialport.on('open')在套接字之外的某处打开串行连接。连接将保持打开状态,然后您可以使用serialport.on('data',function(data){});在套接字内部接收数据并将其发送给客户端。出于某种原因,它有时会多次运行该功能。也许串口需要在某些时候刷新。