Skip to content

htoday/gobang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

多人联机五子棋

服务器地址:游戏平台登录界面

后端部分介绍

Mysql

  • 储存用户信息(用户名,昵称,密码,邮箱,段位积分)

  • 储存用户间的好友关系

Redis

  • 储存房间信息

  • 储存游戏棋盘信息

  • 登录缓存

Logger

  • 记录日志

Viper

  • 配置以上工具

JWT

  • 颁发、验证token用于登录有效期处理

Gin框架

  • 配置路由

  • 收发JSON

互斥锁

  • 解决可能存在的并发问题(如uid的颁布)

Ticker

  • 定时操作(更新排行榜)

主要接口

注册、登录、修改个人信息、更新在线信息、创建房间、修改房间信息(禁手,先后手,排位/普通模式)、获取房间信息、获取房间列表、落子、添加/删除好友、获取好友列表、获取排行榜...

前后交互方法

轮询

事实上使用websocket明显占优,我们原计划先用轮询实现功能,再改用websocket,然而轮询已经根深蒂固(堆成史山),要改的话每个函数都要改,算是个遗憾,希望以后能优化吧

延迟方面,更新数据的频率为200ms/次,处理数据的时间3-7ms,所以可能会有延迟

关于禁手

禁手判断详见api.service.game里的 JuageBan 函数,拿来可以直接用

待优化/扩展的点

使用websocket

回合时限

匹配

用户头像/签名

服务器安全性

                                                                                                    鸣谢前端队友@アクアマリン

About

五子棋项目

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages