Nodejs 实现 HTML5 匿名聊天室,试试 socket.io

发布于 1周前 作者 sinazl 来自 nodejs/Nestjs

Nodejs 实现 HTML5 匿名聊天室,试试 socket.io

http://nutting.jios.org/

后端用的 nodejs ,部署在了树莓派上

参考的这个项目 https://github.com/sheila1227/ChatRoom-AngularJS ,谢谢作者


20 回复

我是作者,把自动滚屏取消了

jios.org ,你好,极路由,同款 2333

作者还做了简单的防注入竟然
我真的不过分。

还是加上了

cnzz 导致半天打不开。

为何搭建后 和你的 UI 不一样?

请问一下 socket.io 一台服务器大概支持多少个人同时连接

访问不了啊,怕是已经被 D 死了

给你起名有点问题。。。。不断循环

聊着聊着挂了。。。

这里的 hacker 好厉害啊,愣是在破解和攻击,不错,我都改进了

似乎已经进入攻防环节了?

实现一个基于 Node.js 和 HTML5 的匿名聊天室,使用 socket.io 是一个非常合适的选择。以下是一个简单的实现示例:

服务器端(Node.js + Express + Socket.io

首先,确保你已经安装了 Node.js 和 npm。然后,创建一个新的项目目录并初始化 npm:

mkdir chat-app
cd chat-app
npm init -y
npm install express socket.io

创建一个 server.js 文件,并添加以下代码:

const express = require('express');
const http = require('http');
const socketIo = require('socket.io');

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

io.on('connection', (socket) => {
  console.log('a user connected');

  socket.on('message', (msg) => {
    io.emit('message', msg);
  });

  socket.on('disconnect', () => {
    console.log('user disconnected');
  });
});

server.listen(3000, () => {
  console.log('listening on *:3000');
});

客户端(HTML + JavaScript)

创建一个 index.html 文件,并添加以下代码:

<!DOCTYPE html>
<html>
<head>
  <title>Anonymous Chat</title>
  <script src="/socket.io/socket.io.js"></script>
  <script>
    const socket = io();
    socket.on('message', (msg) => {
      const p = document.createElement('p');
      p.textContent = msg;
      document.body.appendChild(p);
    });

    document.querySelector('form').onsubmit = (e) => {
      e.preventDefault();
      const msg = document.querySelector('input').value;
      socket.emit('message', msg);
      document.querySelector('input').value = '';
    };
  </script>
</head>
<body>
  <form>
    <input type="text" autocomplete="off" /><button>Send</button>
  </form>
</body>
</html>

启动服务器,打开 index.html,即可开始匿名聊天。

回到顶部