$(function () { // const server = "https://164.92.112.47:5005:5005"; const server = "http://localhost:5005"; let socket = io(server, { transports: ['websocket'] }); let isChatBoxOpen = false; let email = null; // let email = 'testuser@gmail.com'; if (typeof io !== 'undefined') { socket.on('connect', function () { }); } if (!email) { generate_message('Hi There, Whats Your Email?', 'user'); $("#chatForm").submit(function (e) { e.preventDefault(); email = $("#chat-input").val(); if (email.trim() === '') { return false; } $("#chatForm")[0].reset(); let data = { socket: socket.id, email: email } socket.emit("user__connected", data); // let refreshUsers = (data) => { // socket.emit("refreshUsers", data); // } // refreshUsers(data); // let fetchUserMessages = () => { // socket.emit("open__chatBox", data); // } // fetchUserMessages(); }); } var INDEX = 0; $("#chat-submit").click(function (e) { if (email) { e.preventDefault(); let msg = $("#chat-input").val(); if (msg.trim() === '') { return false; } let data = { "socket": socket.id, "from": email, "to": 'admin', "msg": encodeURIComponent(msg), "send_by": 'user', "date": new Date() } socket.emit("send__message", data); } }); function generate_message(msg, type) { let str = ""; str += "
"; str += "
"; str += decodeURIComponent(msg); str += " <\/div>"; str += "

"; str += " "; str += " "; str += " <\/span>"; str += new Date().toLocaleTimeString(); str += " <\/p>"; str += " <\/div>"; $(".chat-logs").append(str); $("#cm-msg").hide().fadeIn(300); if (type === 'self') { $("#chat-input").val(''); } $(".chat-logs").stop().animate({ scrollTop: $(".chat-logs")[0].scrollHeight }, 1000); } $("#chat-circle").click(function () { isChatBoxOpen = true; $("#chat-circle").toggle('scale'); $(".chat-box").toggle('scale'); $(".chat-logs").stop().animate({ scrollTop: $(".chat-logs")[0].scrollHeight }, 1000); }); $(".chat-box-toggle").click(function () { isChatBoxOpen = false; $("#chat-circle").toggle('scale'); $(".chat-box").toggle('scale'); }); socket.on('user__connected', function (data) { generate_message(data, 'user'); }); socket.on('server__error', function (data) { generate_message(data, 'user'); }); socket.on('send__message', function (data) { generate_message(data, 'self'); }); socket.on('open__chatBox', function (data) { let msgLi = '' data.map(function (message) { if (message.send_by === 'user') { msgLi += `

${decodeURIComponent(data.message)}
`; } else { msgLi += `
${decodeURIComponent(data.message)}

${new Date().toLocaleTimeString()}

`; } }); //$(".chat-logs").append(msgLi); }); socket.on('receive__admin__message', (data) => { let msgLi = ``; msgLi += `
${decodeURIComponent(data.msg)}

${new Date().toLocaleTimeString()}

`; $(".chat-logs").append(msgLi); $(".chat-logs").stop().animate({ scrollTop: $(".chat-logs")[0].scrollHeight }, 1000); }); //https://codepen.io/shivapandey/pen/dWdRYM })