ts实现一个简单聊天室

  1. 首先安装依赖项,在命令行中进入你的项目目录并运行以下命令:
npm init -y
npm install express socket.io

     2. 创建一个新的 TypeScript 文件,例如 server.ts,并添加以下代码

import express, { Request, Response } from 'express';
import http from 'http';
import socketio from 'socket.io';

const app = express();
const server = http.createServer(app);
const io = socketio(server);

app.use(express.static('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');
  });
});

app.get('/', (req: Request, res: Response) => {
  res.sendFile(__dirname + '/public/index.html'); // 返回聊天室的 HTML 页面
});

const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
  console.log(`Server listening on port ${PORT}`);
});

3在与 server.ts 同级的目录下创建一个名为 public 的文件夹,并在该文件夹中创建一个名为 index.html 的文件,添加以下代码

<!DOCTYPE html>
<html>
<head>
  <title>Chat Room</title>
  <script src="/socket.io/socket.io.js"></script>
  <script>
    const socket = io();

    function sendMessage() {
      const input = document.getElementById('message-input');
      const message = input.value.trim();
      
      if (message !== '') {
        socket.emit('chat message', message);
        input.value = '';
      }
    }
    
    socket.on('chat message', (msg) => {
      const p = document.createElement('p');
      p.textContent = msg;
      document.getElementById('messages').appendChild(p);
    });
  </script>
</head>
<body>
  <div id="messages"></div>
  <input type="text" id="message-input" />
  <button onclick="sendMessage()">Send</button>
</body>
</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值