$(document).ready(function() { // Initialize variables var $messages = $('.chat-messages'); var $input = $('.chat-input input'); var $submit = $('.chat_submit'); var session_id = ''; $messages.children().each(function() { $(this).addClass('chat-message'); }); // Initialize SocketIO connection var socket = io.connect('http://' + document.domain + ':' + location.port); // Function to send message to Flask-SocketIO app function sendMessage(message) { console.log("message: " + message ) socket.emit('message', {'question': message}); } // Function to display message function displayMessage(message, isUser) { var $message = $('
').html(message.replace(/(https?:\/\/[^\s]+)/g, '$1')); $message.append($messageText); if (isUser) { $message.addClass('user'); } else { $message.addClass('bot') } if ($messages) { $messages.append($message); if ($messages[0]) { $messages.animate({scrollTop: $messages[0].scrollHeight}, 300); } } else { $('.chat-container').append($message); $('.chat-container').animate({scrollTop: 0}, 300); } } socket.on('response', function(data) { console.log("Received response: " + data.response) var response = data.response; displayMessage(response, false); }); // Send message on submit $submit.click(function(event) { event.preventDefault(); var message = $input.val().trim(); console.log("Submit clicked: " + message) if (message !== '') { displayMessage(message, true); sendMessage(message); $input.val(''); } }); // Send message on enter key press $input.keydown(function(event) { if (event.keyCode === 13) { event.preventDefault(); $submit.click(); } }); // Initial message displayMessage('Ask me anything'); });