我有这个代码用于从我的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); }); }); });
jfriend00.. 11
你的价值io
不是应该的.
通常的做事方式是这样的:
var app = require('http').createServer(handler) var io = require('socket.io')(app); var fs = require('fs'); app.listen(80); io.on('connect', ...);
但我猜你的价值io
是这样的:
var io = require('socket.io');
那不是一回事.这是模块句柄.但是,当你这样做的时候:
var io = require('socket.io')(app);
然后,io
是一个socket.io实例.您可以将侦听器绑定到实例,而不是绑定到模块句柄.
在此doc页面上的每个socket.io服务器端示例中,它们使用以下形式之一:
var io = require('socket.io')(app); var io = require('socket.io')(port); var io = require('socket.io')(server);
有了这个:
io.on('connection', ....);
他们无处可做:
var io = require('socket.io`); io.listen(server); io.on('connection', ....);
这只是错误的价值io
.
长篇故事,缩短,您需要修复您分配的内容以io
与文档保持一致.它的返回值为require('socket.io')(app);
您提供了一个socket.io实例对象,然后您可以在其上设置事件处理程序.
你的价值io
不是应该的.
通常的做事方式是这样的:
var app = require('http').createServer(handler) var io = require('socket.io')(app); var fs = require('fs'); app.listen(80); io.on('connect', ...);
但我猜你的价值io
是这样的:
var io = require('socket.io');
那不是一回事.这是模块句柄.但是,当你这样做的时候:
var io = require('socket.io')(app);
然后,io
是一个socket.io实例.您可以将侦听器绑定到实例,而不是绑定到模块句柄.
在此doc页面上的每个socket.io服务器端示例中,它们使用以下形式之一:
var io = require('socket.io')(app); var io = require('socket.io')(port); var io = require('socket.io')(server);
有了这个:
io.on('connection', ....);
他们无处可做:
var io = require('socket.io`); io.listen(server); io.on('connection', ....);
这只是错误的价值io
.
长篇故事,缩短,您需要修复您分配的内容以io
与文档保持一致.它的返回值为require('socket.io')(app);
您提供了一个socket.io实例对象,然后您可以在其上设置事件处理程序.