Projektmanagement-Game/public/js/chat.js

68 lines
1.7 KiB
JavaScript
Raw Normal View History

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
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
}