CustomBoxServer / public /index.html
1tbfree's picture
Create public/index.html
d18f1ef verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CustomBoxServer</title>
<style>
body { font-family: Arial, sans-serif; }
#messages { list-style-type: none; padding: 0; }
#messages li { margin: 5px 0; }
#chat { display: flex; }
#chat input { flex: 1; }
#chat button { margin-left: 5px; }
</style>
</head>
<body>
<h1>Chat Application</h1>
<ul id="messages"></ul>
<div id="chat">
<input id="username" type="text" placeholder="Your name" />
<input id="color" type="text" placeholder="Your color (e.g., red)" />
<input id="message" type="text" placeholder="Type a message..." />
<button id="send">Send</button>
</div>
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io("http://localhost:8086", {
path: '/socket.io/',
transports: ['websocket', 'polling'], // Ensure compatibility with older clients
});
let username;
document.getElementById('send').onclick = function() {
if (!username) {
username = document.getElementById('username').value;
const color = document.getElementById('color').value;
if (username && color) {
socket.emit("user joined", username, color); // Emit user joined event
}
}
const messageInput = document.getElementById('message');
if (messageInput.value) {
// Send message using socket.send()
socket.send({ msg: messageInput.value });
messageInput.value = ''; // Clear input field after sending
}
};
// Listen for messages from server using socket.on()
socket.on("message", function(data) {
const item = document.createElement("li");
item.style.color = data.color || "black";
item.textContent = `${data.nick}: ${data.msg}`;
document.getElementById("messages").appendChild(item);
});
// Listen for user join notifications
socket.on("user joined", function(data) {
const item = document.createElement("li");
item.style.color = data.color || "black";
item.textContent = `${data.username} has joined the chat`;
document.getElementById("messages").appendChild(item);
});
// Listen for user left notifications
socket.on("user left", function(data) {
const item = document.createElement("li");
item.textContent = `${data.username} has left the chat`;
document.getElementById("messages").appendChild(item);
});
</script>
</body>
</html>