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

我有一个用python编写的游戏服务器,还有一个老游戏客户端也在Python中。 我用Javascript写了一个新的游戏客户端,它将连接到websockets。 现在我面临一个devise决定,

  1. 使用miksago的websocket服务器和纯javascript 重写 node.js中的游戏服务器
  2. 用node.js和miksago的websocket服务器创build一个转发器,它将创build一个连接到传统套接字的旧python服务器,用于接收每个websocket连接。
  3. 使用gleicon的websocket服务器进行扭曲的+ python(这实际上看起来像一个不错的主意,我想我喜欢它,但我会反正这个问题。)

编辑:链接和清晰度

这里有很多信息不齐。

  • 你现在(不)快乐的Python或扭曲或你的游戏服务器实施?
  • 你估计在JavaScript中重新实现它有多大的作用?
  • 你是否已经熟悉Node.js?
  • 你在JavaScript服务器实现中看到了什么优势?
  • 这些优点值得你付出努力吗?

选项1绝对看起来可怕,但它可能不适合你。 重要的一点是,如果你的计划失败了,你就不会着陆,因为你已经开始了这个巨大的努力,你可能会失去完成的动力。

选项2和3看起来更容易完成。 我认为主要的区别是必须学习Node.js和一个额外的守护进程来pipe理选项2。

你总是可以select做2或3,如果你不满意,可以select1。

我假设你这样做,因为你也希望基于浏览器的游戏客户端能够连接,虽然从你的问题不清楚。

您可能会看到包含在noVNC (HTML5 VNC客户端)中的wsproxy 。 它是TCP套接字代理的通用WebSockets。 wsproxy与noVNC一起使用来连接到没有WebSocket支持的VNC服务器。 在C,python和node.js中有三个独立的wsproxy实现。

免责声明:我做了noVNC(和wsproxy)。

如果你疯了,真的了解JavaScript,重写应该是Node.js中一个很好的练习。

虽然这取决于你获得了多less代码,但是用JavaScript编写的客户端和服务器都会减less上下文切换,并且如果你正在做大量插值的客户端,则可以重用代码。

如果你想学习Node.js,并且你已经知道如何进行asynchronous编程,那么我会说重写。

另外,我用Node.js做了2个游戏服务器,所以如果你有更多的问题,我有很多的经验:
https://github.com/BonsaiDen/NodeGame-Orbit
https://github.com/BonsaiDen/NodeGame-Shooter

您可能还想查看BiSON以节省WebSockets的带宽,我专门针对HTML5 Games写了这样一段话:
https://github.com/BonsaiDen/BiSON.js

是的,node.js真的适合游戏服务器开发。 node.js的networkingIO能力比python好得多。 但重写是一个很大的代价,如果只有一个node.js进程,你还是不能利用可扩展性。 已经有一个游戏服务器框架,支持多进程和更多的可扩展性,请查看: https : //github.com/NetEase/pomelo

还有一个完整的开源演示: https : //github.com/NetEase/lordofpomelo