Current directory: /home/klas4s23/domains/585455.klas4s23.mid-ica.nl/public_html/Gastenboek/uploads
let username = '';
const socket = new WebSocket('ws://localhost:8080');
const messageArea = document.getElementById('messageArea');
const messageInput = document.getElementById('messageInput');
const loginOverlay = document.getElementById('login-overlay');
const usernameInput = document.getElementById('usernameInput');
let canSend = true;
const COOLDOWN_TIME = 5000; // 5 seconds in milliseconds
function joinChat() {
const name = usernameInput.value.trim();
if (name) {
username = name;
loginOverlay.classList.add('hidden');
socket.send(JSON.stringify({
type: 'join',
username: username
}));
}
}
socket.onopen = function(event) {
appendMessage('Connected to Chat Hub', 'system');
};
socket.onmessage = function(event) {
const message = JSON.parse(event.data);
if (message.type === 'join') {
appendMessage(`${message.username} joined the chat`, 'system');
} else {
appendMessage(`${message.username}: ${message.text}`, 'received');
}
};
socket.onclose = function(event) {
appendMessage('Disconnected from Chat Hub', 'system');
};
function sendMessage() {
const message = messageInput.value.trim();
if (message && socket.readyState === WebSocket.OPEN && canSend) {
const messageObj = {
type: 'message',
text: message,
username: username
};
socket.send(JSON.stringify(messageObj));
appendMessage(`You: ${message}`, 'sent');
messageInput.value = '';
// Start cooldown
canSend = false;
const sendButton = document.querySelector('.chat-input button');
sendButton.disabled = true;
sendButton.textContent = '5s';
let timeLeft = COOLDOWN_TIME / 1000;
const countdownInterval = setInterval(() => {
timeLeft--;
sendButton.textContent = timeLeft + 's';
if (timeLeft <= 0) {
clearInterval(countdownInterval);
canSend = true;
sendButton.disabled = false;
sendButton.textContent = 'Send';
}
}, 1000);
}
}
function appendMessage(text, type) {
const wrapper = document.createElement('div');
wrapper.className = `message-wrapper ${type}-wrapper`;
const messageDiv = document.createElement('div');
messageDiv.className = `message ${type}`;
messageDiv.textContent = text;
wrapper.appendChild(messageDiv);
messageArea.appendChild(wrapper);
messageArea.scrollTop = messageArea.scrollHeight;
}
usernameInput.addEventListener('keypress', function(event) {
if (event.key === 'Enter') {
joinChat();
}
});
messageInput.addEventListener('keypress', function(event) {
if (event.key === 'Enter') {
sendMessage();
}
});