项目简介
本项目是基于Go语言实现的简单聊天系统,由服务器与客户端构成。服务器负责处理玩家登录、聊天、房间切换、状态查询及热门词查询等功能;客户端负责接收用户输入并展示服务器返回信息。采用事件驱动模型,结合多协程与主协程工作模式,实现高效网络通信与数据处理。
项目的主要特性和功能
- 玩家管理:支持玩家登录、退出、切换房间,维护在线玩家状态与房间信息。
- 聊天功能:玩家可在房间内实时聊天,服务器同步更新聊天内容给在线玩家。
- 屏蔽词过滤:利用前缀树(Trie)实现屏蔽词过滤,自动屏蔽聊天中的敏感词汇。
- 性能优化:基于事件驱动和协程模型,高效处理大量并发连接与消息。
- 高频词统计:每个房间能统计最近10分钟频率最高的词。
安装使用步骤
编译运行服务器
- 进入项目的
server
目录:cd server
。 - 编译服务器代码:
go build
。 - 运行服务器:
./server
,也可指定地址运行,如./server -addr :8088
。
编译运行客户端
- 进入项目的
client
目录:cd client
。 - 编译客户端代码:
go build
。 - 运行客户端:
./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】