当前位置: 首页 > 知识库问答 >
问题:

python - fastapi 能做网页棋牌类游戏吗? 如象棋,五子棋,掼蛋等类型的后端?

许茂才
2024-05-06

fastapi 能做网页棋牌类游戏吗? 如象棋,五子棋,掼蛋等类型的后端。 几百人在线。 与django相比优势如何?

如果不合适。做这类网页游戏用什么语言好? go node.js ?谢谢

共有3个答案

白丁雨
2024-05-06

fastapi可以的啊,与django相比最大的优势就是对异步的支持更加方便和友好,吞吐量和django相比也高很多。在异步的加持下,几百并发量没得问题。而且它也支持websocket,只需要安装一下即可,可以看官网描述: fastapi-websockets

至于你列举的go和nodejs。go天生支持协程goroutine,加上go天然强劲得性能,你如果会这门语言,自然更好。nodejs虽然是单线程,但是它的协程是基于事件循环的,而且在浏览器V8引擎得加持下,异步得性能可能比python得还要好一些。

总之就是,你的那个需求,python也能达到,而且就是fastapi就可以,用起来也简单。如果和go、nodejs放一起选择的话,看你的技术倾向和熟练程度了,若对后者更熟悉,你选后者;若对前者还好,就python了。

江渊
2024-05-06

游戏类型应该用 websocket 吧,传统的基于 http 请求的库应该都不行。

我会选择 node.js + socket.io 作为验证阶段的选型。各种云厂商也有提供消息队列服务,正式产品应该还是要选择这些服务才行。

那存
2024-05-06

FastAPI 能做网页棋牌类游戏的后端,例如象棋、五子棋、掼蛋等。FastAPI 是一个高性能的框架,它基于异步请求处理和类型注解,使用 Python 的 asyncio 库来实现高效的并发请求处理,因此适合处理几百人在线的网页游戏。

与 Django 相比,FastAPI 的优势主要体现在性能方面。Django 是一个全功能的框架,提供了许多内置的功能和扩展,但可能会在处理高并发的情况下面临性能问题。而 FastAPI 则更加注重性能和灵活性,适合构建需要处理大量并发请求的场景。

对于做这类网页游戏的后端,除了 FastAPI,其他语言如 Go 和 Node.js 也是不错的选择。Go 语言具有出色的并发性能,适合处理高并发的游戏场景;而 Node.js 则具有异步 I/O 和事件驱动的特性,也适合构建实时的网页游戏后端。具体选择哪种语言和技术栈,还需要根据项目的需求和团队的技术储备来决定。

 类似资料:
  • 五子棋(Gomoku)是一款经典的线上五子棋游戏,5 子连成一线者胜。  

  • 本文向大家介绍Java棋类游戏实践之单机版五子棋,包括了Java棋类游戏实践之单机版五子棋的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java实现的五子棋游戏代码,分享给大家供大家参考,具体代码如下 一、实践目标     1.掌握JavaGUI界面设计        2.掌握鼠标事件的监听(MouseListener,MouseMotionListener) 二、实践内容      

  • 本文向大家介绍python实现五子棋游戏,包括了python实现五子棋游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python实现五子棋游戏的具体代码,供大家参考,具体内容如下 话不多说,直接上代码: 全部工程文件,在GitHub:五子棋 效果预览: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 五子棋是是一种两人对弈的纯策略型棋类游戏。它有两种玩法。玩法一:双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成五子连线者获胜。玩法二:自己形成五子连线就替换对方任意一枚棋子。被替换的棋子可以和对方交换棋子。最后以先出完所有棋子的一方为胜。

  • 本文向大家介绍python网络编程之五子棋游戏,包括了python网络编程之五子棋游戏的使用技巧和注意事项,需要的朋友参考一下 一.本案例基于UDP的socket编程方法来制作五子棋程序,网络五子棋采用C/S架构,分为服务器端和客户端,游戏时服务端首先启动,当客户端启动连接后,服务器端可以走棋,轮到自己棋才可以在棋盘上落子,同时下方标签会显示对方走起信息,服务器端用户可以通过“退出游戏”按钮可以结

  • 本文向大家介绍javafx实现五子棋游戏,包括了javafx实现五子棋游戏的使用技巧和注意事项,需要的朋友参考一下 需求描述 一个五子棋游戏,能实现双方黑白对决,当一方获胜时给出提示信息,利用GUI界面实现 项目结构如下图 一、实体 FiveChess类 提供五子棋实体包含的所有信息 判断游戏是否结束 play方法改变chess[][]棋盘中的数据 二、视图 ChessPane类继承Pane类实现