littlebot
Published on 2025-04-10 / 0 Visits
0

【源码】基于Go语言的简单聊天系统

项目简介

本项目是基于Go语言实现的简单聊天系统,由服务器与客户端构成。服务器负责处理玩家登录、聊天、房间切换、状态查询及热门词查询等功能;客户端负责接收用户输入并展示服务器返回信息。采用事件驱动模型,结合多协程与主协程工作模式,实现高效网络通信与数据处理。

项目的主要特性和功能

  1. 玩家管理:支持玩家登录、退出、切换房间,维护在线玩家状态与房间信息。
  2. 聊天功能:玩家可在房间内实时聊天,服务器同步更新聊天内容给在线玩家。
  3. 屏蔽词过滤:利用前缀树(Trie)实现屏蔽词过滤,自动屏蔽聊天中的敏感词汇。
  4. 性能优化:基于事件驱动和协程模型,高效处理大量并发连接与消息。
  5. 高频词统计:每个房间能统计最近10分钟频率最高的词。

安装使用步骤

编译运行服务器

  1. 进入项目的server目录:cd server
  2. 编译服务器代码:go build
  3. 运行服务器:./server,也可指定地址运行,如./server -addr :8088

编译运行客户端

  1. 进入项目的client目录:cd client
  2. 编译客户端代码:go build
  3. 运行客户端:./client,启动时可指定连接地址,如./client -addr 127.0.0.1:8999

客户端交互

客户端支持三种格式命令: - 功能性命令(格式为 :command param1 param2),如:login name password用于玩家登录,登录后才能进行其他操作;:select room用于选择进入或创建新房间。 - gm命令(格式为 /command param1 param2),如/stats playerName用于显示某个玩家的状态,/popular room用于查看特定房间相关信息。 - 聊天:除上述命令外的输入均视为聊天内容,聊天时最大字符长度不能超过1024字节,且支持英文屏蔽字过滤。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】