If this is more of an engine.io or socket.io question, I apologize in advance...
I am working on getting nodejs / socket.io / express running on busybox linux on an ARMv5TE processor. I have nodejs up and running and the following code runs without errors.
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(80);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
}); Until I try to connect via websocket from a client. From the browser (with the client script socket.io.jsloaded), var socket = io.connect('ws://192.168.1.8:3000'); or var socket = io.connect('http://192.168.1.8:3000');. Node then logs this error to the console and stops:
buffer.js:784
throw TypeError('value is out of bounds');
TypeError: value is out of bounds
at TypeError (<anonymous>)
at checkInt (buffer.js:784:11)
at Buffer.writeInt32BE (buffer.js:924:5)
at Base64Id.generateId (/usr/lib/node_modules/socket.io/node_modules/engine.io/node_modules/base64id/lib/base64id.js:88:8)
at Server.handshake (/usr/lib/node_modules/socket.io/node_modules/engine.io/lib/server.js:222:21)
at /usr/lib/node_modules/socket.io/node_modules/engine.io/lib/server.js:184:12
at Server.checkRequest (/usr/lib/node_modules/socket.io/lib/index.js:67:51)
at Server.verify (/usr/lib/node_modules/socket.io/node_modules/engine.io/lib/server.js:127:17)
at Server.handleRequest (/usr/lib/node_modules/socket.io/node_modules/engine.io/lib/server.js:174:8)
at Server.<anonymous> (/usr/lib/node_modules/socket.io/node_modules/engine.io/lib/server.js:362:12)Running the same node server from my desktop computer (Windows 8 64 bit), does not produce this error.
I can trace the error to these lines of code in node_modules/socket.io/node_modules/engine.io/node_modules/base64id/lib/base64id.js:
Base64Id.prototype.generateId = function () {
var rand = new Buffer(15); // multiple of 3 for base64
if (!rand.writeInt32BE) {
return Math.abs(Math.random() * Math.random() * Date.now() | 0).toString() + Math.abs(Math.random() * Math.random() * Date.now() | 0).toString();
}
this.sequenceNumber = (this.sequenceNumber + 1) | 0;
rand.writeInt32BE(this.sequenceNumber, 11);
...If I change rand.writeInt32BE(this.sequenceNumber, 11); to rand.writeInt32BE(this.sequenceNumber, 11, true);, the error goes away and I can continue on without problems (presumably). So:
base64id.js safe or appropriate?<ul style="margin: 0px 0px 1em 30px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; list-style-position: initial; list-style-image: initial; color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; line-height: 1...
To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/f428d421-bd4d-4031-878e-6e6cc89195ca%40googlegroups.com.--
Job board: http://jobs.nodejs.org/
New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to the Google Groups "nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+un...@googlegroups.com.
To post to this group, send email to nod...@googlegroups.com.
...}<span s
...this.sequenceNumber = (this.sequenceNumber + 1</