Wednesday 20 January 2016

Node.JS Chat room issue with sending images

Im not the strongest programmer in the world, just wondering if anyone can give me a hand/tell me where i've gone wrong. My project is supposed to be a chat room that can send images, it worked fine before I tried to do the image sharing. (sorry for repost, im just really stuck)HTML

Enter a username

Send Image
App/Servervar fs = require('fs'), path = require('path'), io = require('socket.io'), static = require('node-static'), express = require('express'), app = express(), server = require('http').createServer(app); server.listen(3000); var file = new static.Server(path.join(__dirname, '..', 'public')); app.get('/', function(req, res){ res.sendfile(__dirname + '/index.html'); }); app.use(express.static(path.join(__dirname, 'public'))); function app(req, res) { file.serve(req, res); }; var io = io.listen(app), nicknames = []; //recieving event on the server side io.sockets.on('connection', function(socket){ socket.on('send message', function(data){ socket.broadcast.emit('new message', {msg: data, nick: socket.nickname}); }); socket.on('image message', function(data){ socket.broadcast.emit('image message', {msg: data, nick: socket.nickname}); }); socket.on('new user', function(data, callback){ if (nicknames.indexOf(data) != -1){ callback(false); } else{ callback(true); socket.nickname = data; nicknames.push(socket.nickname); updateNicknames(); } //?// }); function updateNicknames(){ io.sockets.emit('usernames', nicknames); } socket.on('disconnect', function(data){ if(!socket.nickname) return; nicknames.splice(nicknames.indexOf(socket.nickname), 1); updateNicknames(); }); }); Messagingvar socket = io.connect(); var $nickForm = $('#nickInput'); var $nickError = $('#nickError'); var $nickBox = $('#nickname'); var $users = $('#users'); var $messageForm = $('#sendMessage'); var $messageBox = $('#message'); var $chat = $('#chat'); var $sendImage = $('#sendFile'); socket.on('new message', message); socket.on('image message', image); //nickname input $nickForm.submit(function(e){ e.preventDefault(); socket.emit('new user', $nickBox.val(), function(data){ if(data){ $('#nickDiv').hide(); $('#chatDiv').show(); } else{ $nickError.html('That username is already taken, try again'); } }); $nickBox.val(' '); }); socket.on('usernames', function(data){ var html = ''; for(i=0; i < data.length; i++){ html += data[i] + '
' } $users.html(html); }); // text $messageForm.submit(function(e){ e.preventDefault(); socket.emit('new message', $messageBox.val()); $messageBox.val(''); }); socket.on('new message', function(data){ $chat.append('' + data.nick + ': ' + data.msg +
"); }); e.preventDefault(); socket.emit('send message', $messageBox.val()); $messageBox.val(''); }); // image $sendImage.bind('change',function(e){ var data = e.orginalEvent.target.files[0]; var reader = new FileReader(); reader.onload = function(evt){ image('me', evt.target.result); socket.emit('image message', evt.target.result); }; reader.readAsDataURL(data); }); socket.on('image message', function(base64Image){ $chat.append('' + data.nick + ': ' + data.msg + "
", ''); };

Submitted January 20, 2016 at 10:52PM by Jakewright0409

No comments:

Post a Comment