2021-05-26 14:26:05 +00:00
|
|
|
let socket;
|
|
|
|
let connected = false;
|
|
|
|
|
2021-06-06 19:24:15 +00:00
|
|
|
function start_chat() {
|
2021-05-26 14:26:05 +00:00
|
|
|
socket = io();
|
|
|
|
|
2021-05-26 20:58:00 +00:00
|
|
|
socket.on('login', function () {
|
2021-05-26 14:26:05 +00:00
|
|
|
connected = true;
|
2021-05-26 17:34:31 +00:00
|
|
|
addLogMessage("Welcome " + username + "!");
|
2021-05-26 14:26:05 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
socket.on('new message', function (data) {
|
|
|
|
addChatMessage(data);
|
|
|
|
});
|
|
|
|
|
|
|
|
socket.on('user joined', function (data) {
|
2021-05-26 17:34:31 +00:00
|
|
|
addLogMessage(data + ' joined');
|
2021-05-26 14:26:05 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
socket.on('user left', function (data) {
|
2021-05-26 17:34:31 +00:00
|
|
|
addLogMessage(data + ' left');
|
2021-05-26 14:26:05 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
// Login
|
2021-05-26 20:41:05 +00:00
|
|
|
socket.emit('add user', {'username': username, 'room_name': room_name});
|
2021-06-06 19:24:15 +00:00
|
|
|
}
|
2021-05-26 14:26:05 +00:00
|
|
|
|
|
|
|
function sendMessage() {
|
2021-05-26 17:34:31 +00:00
|
|
|
let message = document.getElementById('message_input').value;
|
2021-05-26 14:26:05 +00:00
|
|
|
|
|
|
|
if (message && connected) {
|
2021-05-26 17:34:31 +00:00
|
|
|
document.getElementById('message_input').value = '';
|
2021-05-26 14:26:05 +00:00
|
|
|
|
2021-05-26 17:34:31 +00:00
|
|
|
addChatMessage({username: username, message: message});
|
2021-05-26 14:26:05 +00:00
|
|
|
|
|
|
|
socket.emit('new message', message);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-05-26 17:34:31 +00:00
|
|
|
function addLogMessage(message) {
|
2021-05-26 14:26:05 +00:00
|
|
|
let li = document.createElement('div');
|
2021-05-26 17:34:31 +00:00
|
|
|
li.classList.add('log_message');
|
2021-05-26 14:26:05 +00:00
|
|
|
li.innerText = message;
|
|
|
|
|
2021-05-26 17:34:31 +00:00
|
|
|
document.getElementById("messages_received").appendChild(li);
|
2021-05-26 14:26:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function addChatMessage(data) {
|
|
|
|
let user = document.createElement('span');
|
|
|
|
user.classList.add('username');
|
|
|
|
user.innerText = data.username;
|
|
|
|
|
|
|
|
let messageBody = document.createElement('span');
|
|
|
|
messageBody.classList.add('messageBody');
|
|
|
|
messageBody.innerText = data.message;
|
|
|
|
|
|
|
|
let messageDiv = document.createElement('div');
|
2021-05-26 17:34:31 +00:00
|
|
|
messageDiv.classList.add('chat_message');
|
|
|
|
if (data.username === username) {
|
2021-05-26 14:26:05 +00:00
|
|
|
messageDiv.classList.add('me');
|
|
|
|
} else {
|
|
|
|
messageDiv.classList.add('others');
|
|
|
|
}
|
|
|
|
messageDiv.appendChild(user);
|
|
|
|
messageDiv.appendChild(messageBody);
|
|
|
|
|
2021-05-26 17:34:31 +00:00
|
|
|
document.getElementById('messages_received').append(messageDiv);
|
2021-05-26 14:26:05 +00:00
|
|
|
}
|