我应该重写我的游戏服务器,写一个转发器,或使用一个新的插件?

2024-06-09 21:34:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用python和twisted编写的游戏服务器,还有一个用python编写的旧游戏客户端。我用Javascript编写了一个新的游戏客户端,它将与websockets连接。现在我面临一个设计决策,我应该

  1. 使用miksago's websocket server和纯javascript在node.js中重新编写游戏服务器
  2. 创建转发器节点.js以及miksago的websocket服务器,它将创建一个到旧python服务器的连接,该服务器接收到的每个websocket连接都使用传统套接字。在
  3. gleicon's websocket server用于twisted+python(这看起来是个不错的主意,我想我喜欢它,但无论如何我还是会把这个问题贴出来的。)

编辑:链接和清晰度


Tags: 服务器node游戏客户端节点websocketsserver转发器
3条回答

如果你疯了,并且真正了解JavaScript,那么重写应该是一个非常好的练习节点.js. 在

尽管这取决于你得到了多少代码,但是用JavaScript编写客户机和服务器可以减少上下文切换,并且如果你在做有大量插值的客户机,代码就可以使用了。在

如果你想学的话,我会说重写吧节点.js你已经知道如何进行异步编程了。在

另外,我用2个游戏服务器节点.js,所以,如果你还有其他问题,我有丰富的经验:
https://github.com/BonsaiDen/NodeGame-Orbit
https://github.com/BonsaiDen/NodeGame-Shooter

你可能还想看看BiSON,用WebSockets来节省带宽,我专门在HTML5游戏中写道:
https://github.com/BonsaiDen/BiSON.js

我假设你这么做是因为你也希望一个基于浏览器的游戏客户端能够连接,尽管你的问题还不清楚。在

您可以看看wsproxy,它包含在noVNC(html5vnc客户机)中。它是一个通用的WebSockets到TCP套接字代理。wsproxy与noVNC一起用于连接到不支持WebSockets的VNC服务器。wsproxy在C、python和节点.js. 在

免责声明:我制作了noVNC(和wsproxy)。在

这里缺少很多信息。在

  • 你现在对Python或者Twisted或者你的游戏服务器实现满意吗?在
  • 您估计在JavaScript中重新实现它的工作量有多大?在
  • 你已经熟悉了吗Node.js?在
  • 您认为JavaScript服务器实现有哪些优势?在
  • 这些优点值得你付出努力吗?在

选项1看起来很吓人,但可能不适合你。重要的是你不要陷入你自己的项目脱轨的境地,因为你已经开始了巨大的努力,你可能会在某个时候失去完成的动力。在

选项2和3看起来更容易实现。我想主要的区别是必须学习节点.js以及一个额外的守护进程来管理选项2。在

你总是可以选择做2或3,如果你不满意的话,可以移到1。在

相关问题 更多 >