【Node.js实战】用 Node.js 实现一个简单的聊天室

158 阅读1分钟

以下是一个简单的基于 Node.js 的聊天室:

  1. 创建一个 index.html 文件,包含一个输入框和发送按钮:
<!DOCTYPE html>
<html>
<head>
  <title>Chat Room</title>
</head>
<body>
  <input type="text" id="message" placeholder="Type your message here...">
  <button onclick="sendMessage()">Send</button>

  <script>
    function sendMessage() {
      var message = document.getElementById('message').value;
      socket.emit('message', message);
    }
  </script>

  <script src="/socket.io/socket.io.js"></script>
  <script>
    var socket = io();
    socket.on('message', function (message) {
      console.log('Received message: ' + message);
    });
  </script>
</body>
</html>
  1. 创建一个 server.js 文件,使用 Express 和 Socket.IO 创建服务器:
const express = require('express');
const app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);

app.use(express.static(__dirname + '/public'));

io.on('connection', function (socket) {
  console.log('A user connected');

  socket.on('message', function (message) {
    console.log('Received message: ' + message);
    io.emit('message', message);
  });

  socket.on('disconnect', function () {
    console.log('A user disconnected');
  });
});

http.listen(3000, function () {
  console.log('Server started on port 3000');
});
  1. 运行 server.js 文件,启动服务器:
node server.js
  1. 打开浏览器,访问 http://localhost:3000,即可进入聊天室。

这个简单的聊天室示例使用 Socket.IO 实现实时通信,通过监听 message 事件来接收和发送消息。当用户连接和断开连接时,服务器会在控制台输出提示信息。