I deployed your code with a few changes, and it works great on the hero, please take a look at it. Server side app.js
var express = require('express'); var app = express(); app.set('port', (process.env.PORT || 5000)); var server = app.listen(app.get('port'), function() { console.log('Node app is running on port', app.get('port')); }); var io = require('socket.io')(server); app.use(express.static("./views")); app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); next(); }); app.get('/', function (req, res) { var path = __dirname + '/views/index.html'; console.log(path); res.sendFile(path); }); io.on('connection', function(socket) { socket.on('beep', function(){ socket.emit("beep", {data: 5}); console.log('beep recieved'); }); socket.on('change-speed', function(data) { console.log('change speed recieved: ' + data); socket.emit("speed", {newSpeed: data}); }); socket.on('ios-connection', function(data) { console.log('ios connection with message: ' + data); }); });
package.json
{ "name": "socketio", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start" : "node app.js" }, "author": "inampaki", "license": "ISC", "dependencies": { "express": "^4.13.3", "express-ws": "^0.2.6", "socket.io": "^1.3.7" } }
index.html
<script src="/socket.io.js"></script> <script> var socket = io.connect('/'); socket.on('speed', function (data) { console.log('speed Message Received!'); console.log(data); }); socket.on('beep', function (data) { console.log('beep Message Received!'); console.log(data); }); socket.emit("beep", {beep : true}); socket.emit("change-speed", {"change-speed" : true}); socket.emit("ios-connection", {"ios-connection" : true}); </script>
Note that save index.html and socket.io.js in the views folder. URL where I deployed it, socketip