【发布时间】:2017-01-12 21:44:38
【问题描述】:
我有此代码用于从我的 Arduino 接收数据,但我想将数据发送回我的 Arduino 并在我的客户端页面上获得响应。我添加了一个监听功能,但是当我从客户端页面发送数据时,我不断收到io.on is not a function。
test.js
io.listen(app.listen(3000)).on('connection', function (client) {
// store client into array
clients.push(client);
// on disconnect
client.on('disconnect', function() {
// remove client from array
clients.splice(clients.indexOf(client), 1);
});
// I added this to listen for event from my chart.JS
io.on('connection', function(socket){
socket.on('LED on', function (data) {
console.log(data);
});
socket.on('LED off', function (data) {
console.log(data);
});
});
});
【问题讨论】:
-
不是您当前的问题,但您需要在
document.getElementById('ON').onclick = ledOn();等行中去掉ledOn();和ledOff();末尾的括号。这将立即调用这些函数并将它们的返回值 (undefined) 分配给onclick。应该是document.getElementById('ON').onclick = ledOn; -
你使用什么库?你在哪个平台?什么是完整的堆栈跟踪/错误消息?
-
那是一个http服务器应用?通常你会这样做
var app = require('http').createServer(handler)var io = require('socket.io')(app);app.listen(PORT)io.on('connection', function (socket) { //... -
@robertotomás 我的 socket.io 已经在监听这个函数的事件了。我只是想发回数据。您真的需要包含所有这些吗?
-
使用 express.js 设置 socket io,见socket.io/docs/#Using-with-Express
标签: javascript node.js socket.io arduino