From e878cedf59e885a14e09896b212ab6b1c1a48471 Mon Sep 17 00:00:00 2001 From: vuongtaquoc Date: Fri, 22 May 2015 22:57:21 +0700 Subject: [PATCH] Check and create user when no user --- lib/chat-server.js | 24 ++++--- test/public/js/chat-ui.js | 133 -------------------------------------- test/public/js/chat.js | 14 ---- 3 files changed, 15 insertions(+), 156 deletions(-) delete mode 100644 test/public/js/chat-ui.js delete mode 100644 test/public/js/chat.js diff --git a/lib/chat-server.js b/lib/chat-server.js index f9c52dc..96870cf 100644 --- a/lib/chat-server.js +++ b/lib/chat-server.js @@ -56,18 +56,24 @@ function adminJoinGroup() { } function getCurrentUser(socket) { - var cookies = socket.handshake.headers['cookie'].split(';'), - userID; + if (socket.handshake.headers['cookie']) { + var cookies = socket.handshake.headers['cookie'].split(';'), + userID; - cookies.forEach(function(cookie) { - if (cookie.indexOf(conf.cookies.userID.key)) { - var userCookies = cookie.split('='); + cookies.forEach(function(cookie) { + if (cookie.indexOf(conf.cookies.userID.key)) { + var userCookies = cookie.split('='); - userID = userCookies.pop(); - } - }); + userID = userCookies.pop(); + } + }); + + return userID; + } else { + var date = new Date(); - return userID; + return 'user_' + date.getTime(); + } } function assignGuestName(socket, userID) { diff --git a/test/public/js/chat-ui.js b/test/public/js/chat-ui.js deleted file mode 100644 index e2e2951..0000000 --- a/test/public/js/chat-ui.js +++ /dev/null @@ -1,133 +0,0 @@ -function createChatWindow(group) { - var template = [ - '
', - '
', - '
', - '', - '', - '
', - '
' - ]; - - return template.join(''); -} - -function appendMessageToElement(message, user, element, className) { - var displayMessage = user + ': ' + message, - newElement = $('
').text(displayMessage); - - element.append(newElement); - element.scrollTop(element.prop('scrollHeight')); -} - -function processUserInput(chatApp, socket) { - var sendMessage = $('#send-message'), - message = sendMessage.val(); - - if (message) { - var messageBox = $('#messages'), - currentGroup = $('#currentGroup').val(), - userSent = 'Me', - className = 'message-from'; - - chatApp.sendMessage(currentGroup, message); - - // append message to element - appendMessageToElement(message, userSent, messageBox, className); - - sendMessage.val(''); - } -} - -// start socket.io -var socket = io.connect('http://localhost:2222'); - -$(document).ready(function() { - var chatApp = new Chat(socket), - sendMessage = $('#send-message'), - sendForm = $('#send-form'), - currentGroup = $('#currentGroup'), - messageBox; - - socket.on('clientMessage', function(clientData) { - switch (clientData.code) { - case 'JOIN_GROUP': - var group = clientData.data.group; - - // set current room to form - currentGroup.val(group); - - break; - case 'RECEIVE_MESSAGE': - var data = clientData.data, - className = 'message-to', - messageBox; - - // check if admin sent to user - if (data.fromUser === 'admin') { - messageBox = $('#messages'); - - appendMessageToElement(data.text, data.fromUser, messageBox, className); - } else { - var group = data.group, - prefixDisplayMessageBox = 'display_message_', - prefixForm = 'form_', - prefixMessageInput = 'message_'; - - // append message to chat window if chat window is exists - if ($('#' + prefixDisplayMessageBox + group).length) { - messageBox = $('#' + prefixDisplayMessageBox + group); - - appendMessageToElement(data.text, data.fromUser, messageBox, className); - } else { - // create chat window if not exists - var template = createChatWindow(group), - popover = $(template); - - messageBox = popover.find('#' + prefixDisplayMessageBox + group); - - appendMessageToElement(data.text, data.fromUser, messageBox, className); - - $('#content').append(popover); - } - - // handle admin send message -> user - $('#' + prefixForm + group).submit(function(e) { - e.preventDefault(); - - var sendMessage = $('#' + prefixMessageInput + group), - message = sendMessage.val(); - - if (message) { - // send message to server - chatApp.sendMessage(group, message); - - var userSent = 'Me'; - - // re-assign class name - className = 'message-from'; - - messageBox = $('#' + prefixDisplayMessageBox + group); - - appendMessageToElement(message, userSent, messageBox, className); - - sendMessage.val(''); - } - - return false; - }); - } - - break; - } - }); - - // handle user send message -> admin - sendMessage.focus(); - - sendForm.submit(function() { - processUserInput(chatApp, socket); - - return false; - }); -}); \ No newline at end of file diff --git a/test/public/js/chat.js b/test/public/js/chat.js deleted file mode 100644 index 0bf06a5..0000000 --- a/test/public/js/chat.js +++ /dev/null @@ -1,14 +0,0 @@ -var Chat = function(socket) { - this.socket = socket; - }, - proto = Chat.prototype; - -proto.sendMessage = function(group, message) { - this.socket.emit('serverMessage', { - code: 'SEND_MESSAGE', - data: { - text: message, - group: group - } - }); -}; \ No newline at end of file