3
的Javascript:使用Socket.io与Heroku的
var express = require('express')
, app = express()
, server = require('http').createServer(app)
, io = require('../../lib/socket.io').listen(server)
, dgram = require('dgram');
server.listen(5000);
var client = dgram.createSocket('udp4');
var message = new Buffer("100 101 102");
app.use(express.static(__dirname + '/'));
io.sockets.on('connection', function(socket) {
console.log("Server Connected");
socket.on('message', function(data) {
console.log(data);
client.send(message, 0, message.length, 8888, '192.168.1.1')
});
});
相关HTML:
$(window).load(function(){
socket = io.connect('/');
$(window).click(function() {
sendData(100, 101, 102);
});
});
function sendData(redVal, greenVal, blueVal) {
socket.emit('message', redVal + " " + greenVal + " " + blueVal);
}
的package.json:
{
"name": "LEDControl",
"description": "First attempt at mobile node.js and socket.io arduino control",
"version": "0.0.1-6",
"dependencies": {
"express": "3.x",
"socket.io": "~0.9.16"
},
"engines": {
"node": "0.10.x",
"npm": "1.3.x"
}
}
我试图通过套接字来发送UDP数据包。 io到带有以太网屏蔽的Arduino。我在Heroku上运行这个。它在localhost上工作正常,但是当我尝试在Heroku上运行时它总是崩溃。该问题似乎与socket.io。 Websockets是Heroku的一项新功能,因此很难找到关于它的许多信息。我也在Nodejitsu上试过了,并得到了类似的结果。任何人都知道我在做什么错了?现在只要我点击屏幕就应该发送“100 101 102”。这个问题可能与Arduino以太网盾的局限性有关,我不确定。
是的,websockets已启用。 –