编写一个基于nodejs的简易聊天室要服务器端与客户端代码
时间: 2024-04-11 08:32:27 浏览: 173
当然,以下是一个基于 Node.js 的简易聊天室的服务器端代码和客户端代码:
服务器端代码(server.js):
```javascript
const http = require('http');
const express = require('express');
const socketIO = require('socket.io');
// 创建 Express 应用程序
const app = express();
// 创建 HTTP 服务器并将 Express 应用程序与之关联
const server = http.createServer(app);
// 创建 Socket.IO 实例并将其与 HTTP 服务器关联
const io = socketIO(server);
// 配置静态文件目录
app.use(express.static(__dirname + '/public'));
// 处理客户端连接事件
io.on('connection', (socket) => {
console.log('A user connected');
// 处理客户端发送的消息
socket.on('chat message', (msg) => {
console.log('Message: ' + msg);
// 将消息广播给所有连接的客户端
io.emit('chat message', msg);
});
// 处理客户端断开连接事件
socket.on('disconnect', () => {
console.log('A user disconnected');
});
});
// 启动服务器
const port = 3000;
server.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
```
客户端代码(index.html):
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Chat Room</title>
</head>
<body>
<h1>Chat Room</h1>
<ul id="messages"></ul>
<form id="chat-form">
<input id="message-input" type="text" autocomplete="off">
<button>Send</button>
</form>
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io();
const chatForm = document.getElementById('chat-form');
const messageInput = document.getElementById('message-input');
const messagesList = document.getElementById('messages');
chatForm.addEventListener('submit', (e) => {
e.preventDefault();
const message = messageInput.value;
if (message.trim() !== '') {
socket.emit('chat message', message);
messageInput.value = '';
}
});
socket.on('chat message', (msg) => {
const li = document.createElement('li');
li.textContent = msg;
messagesList.appendChild(li);
});
</script>
</body>
</html>
```
上述代码中,服务器端使用了 Express 框架和 Socket.IO 库,创建了一个 HTTP 服务器,并处理客户端的连接和消息传输。客户端使用了 Socket.IO 客户端库,与服务器建立连接,并通过表单输入框发送消息。
在服务器端和客户端代码中,你可以根据需要进行修改和扩展。在运行代码之前,确保你已经安装了 Node.js 和相关依赖,并将代码保存到合适的文件夹中。然后通过终端进入该文件夹,并执行 `node server.js` 命令启动服务器。在浏览器中访问 `http://localhost:3000` 即可进入简易聊天室界面。
希望对你有所帮助!如果还有其他问题,请随时提问。
阅读全文