用一个node.js+html,帮我写一个离线聊天室,我要全部的代码
时间: 2023-08-28 18:36:17 浏览: 50
好的,以下是一个基本的离线聊天室的完整代码,使用Node.js和Express框架,以及Socket.io库实现实时通信。
HTML文件(index.html):
```html
<!DOCTYPE html>
<html>
<head>
<title>离线聊天室</title>
</head>
<body>
<ul id="message-list"></ul>
<input type="text" id="message-input" />
<button id="send-button">发送</button>
<script src="/socket.io/socket.io.js"></script>
<script src="/client.js"></script>
</body>
</html>
```
Node.js服务器代码(server.js):
```javascript
const express = require('express');
const app = express();
const http = require('http').createServer(app);
const io = require('socket.io')(http);
app.use(express.static('public'));
io.on('connection', (socket) => {
console.log('a user connected');
socket.on('chat message', (message) => {
console.log('message: ' + message);
io.emit('chat message', message);
});
socket.on('disconnect', () => {
console.log('user disconnected');
});
});
http.listen(3000, () => {
console.log('listening on *:3000');
});
```
客户端JavaScript代码(public/client.js):
```javascript
const socket = io();
const messageList = document.querySelector('#message-list');
const messageInput = document.querySelector('#message-input');
const sendButton = document.querySelector('#send-button');
const sendMessage = () => {
const message = messageInput.value;
socket.emit('chat message', message);
messageInput.value = '';
};
sendButton.addEventListener('click', sendMessage);
messageInput.addEventListener('keydown', (event) => {
if (event.key === 'Enter') {
sendMessage();
}
});
socket.on('chat message', (message) => {
const messageItem = document.createElement('li');
messageItem.innerText = message;
messageList.appendChild(messageItem);
});
```
将以上代码保存到相应的文件中,然后在终端中运行以下命令启动服务器:
```
node server.js
```
然后在浏览器中访问 http://localhost:3000 即可使用离线聊天室。