我们使用了HashMap存储用户状态,
用户状态分为空闲和游戏中:
WebSocket接口设计如下:
在大厅中选择玩家,随后会进入对战:
WebSocket接口代码如下:
对战过程实时显示双方分数
对战过程中的演示图:左边显示我方分数,右边显示对方分数
WebSocket接口代码如下:
进一步
这个只是个两天赶出来的Demo,当然里成品还有非常大的差距。这里有几个需要继续解决的事情:
- 实现自动匹配/排行榜
- WebSocket通讯优化:在某些地方使用点对点通讯,而非全部使用广播通讯。
我们可以使用convertAndSendToUser()方法,按照名字就可以判断出来,convertAndSendToUser()方法能够让我们给特定用户发送消息。
spring webscoket能识别带”/user”的订阅路径并做出处理,例如,如果浏览器客户端,订阅了’/user/topic/greetings’这条路径,
就会被spring websocket利用UserDestinationMessageHandler进行转化成”/topic/greetings-usererbgz2rq”,”usererbgz2rq”中,user是关键字,erbgz2rq是sessionid,这样子就把用户和订阅路径唯一的匹配起来了
参考文献
点对点通讯:
https://blog.csdn.net/yingxiake/article/details/51224569
总结
https://github.com/qqxx6661/websocket-game-demo
关注我
我目前是一名后端开发工程师。主要关注后端开发,数据安全,爬虫,边缘计算等方向。
微信:yangzd1102(请注明来意)
Github:@qqxx6661
个人博客:
- CSDN:@Rude3Knife
- 知乎:@Zhendong
- 简书:@蛮三刀把刀
- 掘金:@蛮三刀把刀
- Java知识点复习全手册
- Leetcode算法题解析
- 剑指offer算法题解析
- SpringCloud菜鸟入门实战系列
- SpringBoot菜鸟入门实战系列
- 爬虫相关技术文章
- 后端开发相关技术文章
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!