专栏文章

NeoChat - 专为机房内网环境开发的轻量聊天室(V0.2)

科技·工程参与者 30已保存评论 39

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
39 条
当前快照
1 份
快照标识符
@mip5af67
此快照首次捕获于
2025/12/03 06:23
3 个月前
此快照最后确认于
2025/12/03 06:23
3 个月前
查看原文
在机房环境中,同学们在交流与讨论问题时常面临沟通不畅的困境。众所周知,大多数 OIer 无法使用手机,也无法登录微信或 QQ,而现有的公网聊天室又存在一定的隐私隐患。因此,搭建一个本地聊天室具有重要意义。
此外,聊天室还有云剪贴板/私信功能,在 luogu 访问不畅或断网环境下可以提供良好的使用体验
本文介绍的 NeoChat 是一个开源、轻量且易部署的聊天室项目,由 seve_ 开发,具备较高的并发性能与部署灵活性。项目地址如下:
后端基于 C++ + sqlite + cpp-httplib 实现,前端使用原生 JavaScript,整体支持高并发与多线程处理。

功能概览

如图所示:
  • 支持一个服务端创建多个聊天室;
  • 支持私信功能
  • 支持隐藏、锁定聊天室及密码保护;
  • 内网云剪贴板,可以使用密码保护,自动语言识别/语法高亮
  • 支持发送多行内容,兼容 LaTeX\LaTeX 与 Markdown 格式;
  • 支持图片消息发送。

特点总结

  1. 极致轻量
    • 后端内存占用不超过 7 MB;
    • 磁盘占用不超过 10 MB;
    • 前端带宽需求低于 10 kbps,内存仅占用 10 MB。
  2. 高性能表现
    • 经过机房的测试,在 i5-12400 的测试环境下,支持 10001000 用户同时注册与发送消息时,CPU 占用率低于 33%,磁盘占用不超过 55%
  3. 一键部署
    • 支持在任意 Windows 系统上开箱即用,部署简洁。
  4. 安全性设计
    • 支持 HTTPS 加密及公网部署(不推荐);
    • 内置基础注入攻击防护机制。

快速部署

访问以下链接下载最新版:

部署步骤:

  1. 解压文件;
  2. 运行主程序(.exe 文件);
  3. 在控制台输入 start 启动服务器;
  4. 输入 load 加载配置文件;
兼容系统:
  • Windows 7 / 10 / 11
  • Linux
如遇问题可在 GitHub 提交 Issue。
如何访问?
请确保服务器机(即运行该程序的电脑)防火墙允许服务端通过,并保证客户机与服务器处于同一内网下。直接在浏览器中访问服务端 IP 即可。
查看电脑内网 IP 可在 cmd 中输入 ipconfig 查看。通常为 192.168.x.x
定制化
可以修改 HTML/CSS 来实现更多主题或视觉效果,不会也没关系,可以面向 GPT 编程。

使用文档

所有指令均通过控制台输入,区分大小写。部分指令需要附带参数,参数之间请以空格分隔。

注意事项

  1. 数据库存储路径为 ./database.db
  2. 用户密码使用哈希在数据库中存储,但聊天室密码在后端使用明文存储,请妥善保管;
  3. 默认监听地址为 0.0.0.0:443,且在 0.0.0.0:80 有 HTTP 重定向服务器,可在配置中自定义;
  4. 日志及错误均自动记录,请参考 log 文件内容;
  5. 不建议在公网暴露未加密的服务端口,应启用 HTTPS 并配合防火墙;
  6. 同目录下的证书为随意签发,不受信任。

代码

完整代码可在 GitHub 上进行浏览和下载

使用的开源库

网站 logo 图标采用 Minecraft IC2 材质包中的资源。
项目中可能存在部分 AI 生成的代码。

评论

39 条评论,欢迎与作者交流。

正在加载评论...