你画我猜后端内容
基本内容
- 端口:4321
- 后端开发语言: go 1.15.6
- 通信方式: websocket
- 数据库存储: sqlite
- 运行:
源代码地址: code
main.go 开启服务端
writeDB.go 将Thesaurus.xlsx 文件中的题目和提示文件写入数据库,新增数据需要把文件清空
LOG\error.log 输出log日志,便于查看排查问题
数据传输格式
- 后端接受消息格式: json 转 str
example: {“name”:”login”,”values”:”{“nickName”:”smal”,”openID”:”12345”,”avatarUrl”:”https:”}”}
desc: name 为请求地址实现的功能; vlaues 为此方法需要的数据
- 后端返回消息格式: str 可以转为json
example: {“status”:”ok”,”mes”:” “,”data”:{“openID”:”12345”,”nickName”:”smal”,”avatarUrl”:”https:”,”level”:”1”,”money”:”300”,”orther”:””,”id”: “1”}}
desc: status 请求状态 ok表示请求成功 error 表示请求失败 room 为房间内的数据传输; mes 为提示信息;data 为返回的数据
请求接口
- 登录功能
name: login
values: {nickname:用户昵称,openid:微信小程序时下发id其他情况可以随机生成,avatarUrl:用户头像地址’}
- 开房间功能
name: room
values: {Type: 是否为新建房间,如果为ture则是新建房间否则是匹配房间,返回房间号-房间成员信息,前端切换到房间场景,roomID:查找房间},进入房间自动准备
- 房间内消息发送
name: gaming
values: {RoomID:房间号,Message:send,User:当前用户OpenID,Data:需要转发的数据}
- 房间内准备
name : gaming
values: {RoomID:,Message:ready,user,Data:准备为字符串true取消准备为字符串false} 返回房间成员和准备情况,
- 退出房间
name : gaming
valuse: {RoomID,Message:leave,user:} 发送退出房间消息和房间成员准备情况
- 房主开始游戏
name : gaming
valuse: {RoomID,Message:start,user:} 房间公告信息,能不能开始游戏提示等
- 画家获取生成词语
name : gaming
valuse: {RoomID,Message:word,user:} 四个词语的示例
- 画家选取词语
name : gaming
valuse: {RoomID,Message:choose,user:,Data:选取的词语}画家选取词语,系统提示正常与否
- 玩家猜词语
name : gaming
valuse: {RoomID,Message:guess,user:,Data} 猜对与否
- 获取单个用户的头像等信息
name : getUser
values: {openid:微信小程序时下发id}
- 给用户点赞
name : like
values: {openid:微信小程序时下发id}
- 清空点赞,对局次数,得分状态
name : clear
values: {openid:微信小程序时下发id}
状态获取
GameSuccess 开始游戏成功
GameError 开始游戏失败
RoundOver 回合结束
GameOver 游戏结束
GameCountdown 开始游戏倒计时开始
StartCountdownStop 开始游戏倒计时结束
ChooseWordCountdown 选词倒计时开始
ChooseCountdownStop 选词倒计时结束
DrawCountdown 画画倒计时开始
DrawCountdownStop 画画倒计时结束
RoundCountdown 回合点赞倒计时开始
RoundCountdownStop 回合点赞倒计时结束
GameOverCountdown 游戏结算倒计时开始
GameOverCountdownStop 游戏结算倒计时结束
房间内数据
status 为system 此时数据为房间内的聊天,替换OpenId 为nickname
status room 所发送的数据包括
- 房间内成员和准备状态,房主为谁 用户准备,取消准备,退出,进入房间触发此返回信息
- 房间状态 上述的游戏状态
- status time 倒计时时间