Hello,
working my way through my first app and now attempting to emit and event back
to the connected client through socket.io. On the server side I have the
following to capture the connecting clients IP address into an array (later I
will create a unique ID on the client side as-well in-case they have two
browser sessions open):
var connections = {};
io.sockets.on('connection', function(socket) {
var client = socket.handshake.address;
connections[client] = socket;
logger('Connection from ' + client.address);
socket.on('disconnect', function() {
logger('Disconnection from ' + client.address);
});
});
The connected client then performs an action, in this case attempts a file
upload, for which I need to send a progress status so I tried the following:
app.post('/upload', function(request, response) {
var ipAddress = request.connection.remoteAddress;
logger('URL request came from: ' + ipAddress);
var form = new formidable.IncomingForm(),
files = [],
fields = [];
form.uploadDir = __dirname + '/uploads';
logger('Processing form');
form
.on('progress', function(bytesReceived, bytesExpected) {
var progress = (bytesReceived / bytesExpected * 100).toFixed(2);
var MB = (bytesExpected / 1024 / 1024).toFixed(1);
logger('Uploading ' + MB + 'MB (' + progress + '%)');
connections[ipAddress].emit('status', { completed: progress });
})
.....
when I run it through I receive the error " TypeError: Cannot call method
'emit' of undefined" when I upload a file. My understanding was that the
connections array would be holding the socket object and that is what I would
emit against ?
All help gratefully received and appreciated.
--
Thanks, Phil
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
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 post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en