[WebSocket]使用WebSocket实现实时多人答题对战游戏

[WebSocket]使用WebSocket实现实时多人答题对战游戏

我们使用了HashMap存储用户状态,

用户状态分为空闲和游戏中:

WebSocket接口设计如下:

[WebSocket]使用WebSocket实现实时多人答题对战游戏

用户选择对手,双方进入游戏

在大厅中选择玩家,随后会进入对战:

[WebSocket]使用WebSocket实现实时多人答题对战游戏

WebSocket接口代码如下:

对战过程实时显示双方分数

对战过程中的演示图:左边显示我方分数,右边显示对方分数

[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

总结

我们在本文中实现了在线多人对战游戏的服务端WebSocket接口设计,进一步巩固了对WebSocket的基础和应用范围的理解。

本文工程源代码:

https://github.com/qqxx6661/websocket-game-demo

关注我

我目前是一名后端开发工程师。主要关注后端开发,数据安全,爬虫,边缘计算等方向。

微信:yangzd1102(请注明来意)

Github:@qqxx6661

个人博客:

  • CSDN:@Rude3Knife
  • 知乎:@Zhendong
  • 简书:@蛮三刀把刀
  • 掘金:@蛮三刀把刀

原创博客主要内容

  • Java知识点复习全手册
  • Leetcode算法题解析
  • 剑指offer算法题解析
  • SpringCloud菜鸟入门实战系列
  • SpringBoot菜鸟入门实战系列
  • 爬虫相关技术文章
  • 后端开发相关技术文章

个人公众号:后端技术漫谈

[WebSocket]使用WebSocket实现实时多人答题对战游戏 后端技术漫谈 [WebSocket]使用WebSocket实现实时多人答题对战游戏 微信公众号 [WebSocket]使用WebSocket实现实时多人答题对战游戏 专注后端技术分享,做一个有灵魂的技术公众

来源:蛮三刀酱

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年8月6日
下一篇 2019年8月6日

相关推荐