#node.js #socket.io
Вопрос:
Я новичок в сокете.io и удалось создать приложение для чата, но я изо всех сил пытаюсь добавить имена пользователей к каждому пользователю в приложении для чата. Поэтому я добавил «приглашение», чтобы спросить имя, и когда пользователь вводит что-то в приложении, оно отображает сообщение чата с именем пользователя, однако, когда другой пользователь подключается с другим именем, оно показывает сообщения каждого пользователя с одинаковым именем, например, пользователь1 видит все сообщения с именем пользователь1, а пользователь2 видит все сообщения с именем пользователь2, даже если это от пользователя 1 или пользователя 2. Пожалуйста, помогите! Спасибо!
Script.js
const socket = io();
const chat = document.querySelector('.chat-form');
const Input = document.querySelector('.chat-input');
const chatDisplay = document.querySelector('.chat-display');
var users = prompt('What is your name');
chat.addEventListener('submit', event => {
event.preventDefault();
socket.emit('chat', Input.value);
Input.value = '';
});
const renderMessage = msg => {
const div = document.createElement('div');
div.classList.add('render-message');
div.innerText = msg;
chatDisplay.appendChild(div);
}
socket.on('chat', msg => {
renderMessage(users ': ' msg);
});
Index.js
const express = require('express');
const app = express();
const server = require('http').createServer(app);
const port = process.env.PORT || 3000;
const io = require('socket.io')(server);
const users = {};
app.use(express.static(__dirname '/public'));
io.on('connection', socket => {
socket.on('chat', msg => {
io.emit('chat', msg);
});
});
server.listen(port, () => {
console.log(`Server is running on port ${port}`);
});