It is necessary for my chat to display information (so far without nicknames) that the user has connected, implemented it this way, but for some reason it does not display anyway, what is the problem?
index.js
const express = require('express');
const app = express();
const http = require('http');
const server = http.createServer(app);
const {Server} = require('socket.io');
const io = new Server(server);
io.on('connection', (socket) => {
//console.log("a user connected");
socket.on('connect', () => {
io.emit('connect', "a user connected");
});
socket.on('chat message', (msg) => {
io.emit('chat message', msg);
});
socket.on("disconnect", () => {
console.log("a user disconnected");
});
})
index.html
let socket = io.connect("http://localhost:3000");
let form = document.getElementById("form");
let input = document.getElementById("input");
form.addEventListener('submit', function(e) {
e.preventDefault();
if (input.value) {
socket.emit('chat message', input.value);
input.value = '';
}
});
socket.on('chat message', (msg) => {
let item = document.createElement('li');
item.innerHTML = msg;
messages.appendChild(item);
window.scrollTo(0, document.body.scrollHeight);
});
let socket_connect = io.connect("http://localhost:3000");
socket_connect.on('connect', (con) => {
let item = document.createElement('li');
item.innerHTML = con;
connect.appendChild(item);
});
The chat itself works well