【发布时间】:2022-01-18 21:42:11
【问题描述】:
我正在尝试为一个学校项目创建一个小聊天应用程序,但我遇到了一个小问题,因为我真的是 socket.io//node.js 的新手(一般编码)。英语不是我的第一语言,所以我发现很难从教程中真正理解它是如何工作的。 现在我有 2 个 css 类,一个用于发送消息,一个用于接收消息。我如何做到这一点,以便课程对每条消息应用正确的方式? 如何查看我发送了哪些消息,以及从其他用户那里收到了哪些消息?这对我来说真的不清楚。
服务器端代码:
const http = require('http').createServer();
const io = require('socket.io')(http, {
cors:{origin: "*" }
});
io.on('connection', (socket) => {
console.log('a user connected');
socket.on('message', (message) => {
console.log(message);
io.emit('message', `${message}`);
});
});
http.listen(8080, () => console.log('listening on http://localhost:8080'));
客户端代码:
const socket = io('ws://localhost:8080');
const sendBtn = document.getElementById('sendBtn');
const messageInput = document.getElementById('messageInput');
const messagesContainer = document.getElementById('messagesContainer');
const chatBigContainer = document.getElementById('chatBigContainer');
socket.on('message', text => {
const divEl = document.createElement('div');
divEl.className = "your-message";
messagesContainer.appendChild(divEl);
const labelEl = document.createElement('label');
labelEl.innerHTML = "You";
divEl.appendChild(labelEl);
let messageSent = document.createElement('p');
messageSent.innerHTML = text;
divEl.appendChild(messageSent);
})
sendBtn.addEventListener('click', () =>{
if(messageInput.value === ""){
return;
} else {
const text = messageInput.value;
socket.emit('message', text);
messageInput.value = "";
}
})
【问题讨论】:
标签: javascript node.js sockets websocket socket.io