Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我应该重新编写游戏服务器、编写转发器还是使用新插件?_Javascript_Python_Client Server_Node.js_Websocket - Fatal编程技术网

Javascript 我应该重新编写游戏服务器、编写转发器还是使用新插件?

Javascript 我应该重新编写游戏服务器、编写转发器还是使用新插件?,javascript,python,client-server,node.js,websocket,Javascript,Python,Client Server,Node.js,Websocket,我有一个用python和twisted编写的游戏服务器,还有一个用python编写的旧游戏客户端。我已经用Javascript编写了一个新的游戏客户端,它将连接WebSocket。现在我面临一个设计决策,我应该 使用纯javascript重新编写游戏服务器 使用node.js和miksago的websocket服务器创建一个转发器,这将为接收到的每个websocket连接创建一个到旧python服务器的连接,该服务器使用传统套接字。 用于twisted+python这实际上看起来是个不错的主意,

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

使用纯javascript重新编写游戏服务器 使用node.js和miksago的websocket服务器创建一个转发器,这将为接收到的每个websocket连接创建一个到旧python服务器的连接,该服务器使用传统套接字。 用于twisted+python这实际上看起来是个不错的主意,我想我喜欢它,但无论如何我都会发布这个问题。
编辑:链接和清晰度

这里缺少很多信息

您目前是否对Python或Twisted或游戏服务器实现不满意? 您估计在JavaScript中重新实现它需要付出多大的努力? 您已经熟悉Node.js了吗? 您认为JavaScript服务器实现有哪些优势? 这些优势值得你付出努力吗? 选项1看起来很吓人,但可能不适合你。重要的是,你不要让自己的项目脱轨,因为你已经开始了巨大的努力,在某个时候你可能会失去完成的动力

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


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

这里缺少很多信息

您目前是否对Python或Twisted或游戏服务器实现不满意? 您估计在JavaScript中重新实现它需要付出多大的努力? 您已经熟悉Node.js了吗? 您认为JavaScript服务器实现有哪些优势? 这些优势值得你付出努力吗? 选项1看起来很吓人,但可能不适合你。重要的是,你不要让自己的项目脱轨,因为你已经开始了巨大的努力,在某个时候你可能会失去完成的动力

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


您可以选择2或3,如果您不满意,可以向上移动到1。

我假设您这样做是因为您也希望基于浏览器的游戏客户端能够连接,尽管您的问题并不清楚

您可能会看到HTML5 VNC客户端中包含了哪些。它是一个通用的WebSocket到TCP套接字代理。wsproxy与noVNC一起用于连接到不支持WebSocket的VNC服务器。wsproxy在C、python和node.js中有三种不同的实现


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

我假设您这样做是因为您也希望基于浏览器的游戏客户端能够连接,尽管您的问题并不清楚

您可能会看到HTML5 VNC客户端中包含了哪些。它是一个通用的WebSocket到TCP套接字代理。wsproxy与noVNC一起用于连接到不支持WebSocket的VNC服务器。wsproxy在C、python和node.js中有三种不同的实现


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

如果你疯了,并且真的知道JavaScript,那么在Node.js中重写应该是一个很好的练习

尽管这取决于您得到了多少代码,但如果您使用大量插值处理客户机,使用JavaScript编写客户机和服务器可以减少上下文切换,并使代码具有可重用性

如果您想学习Node.js,并且已经知道如何进行异步编程,那么我建议您进行重写

此外,我还使用Node.js制作了2个游戏服务器,因此,如果您有进一步的问题,我有丰富的经验:

您可能还想使用WebSockets查看BiSON以节省带宽,我专门针对HTML5游戏编写了以下内容:

如果你疯了,真的知道JavaScript,那么在Node.js中重写应该是一个很好的练习

尽管这取决于您得到了多少代码,但如果您使用大量插值处理客户机,使用JavaScript编写客户机和服务器可以减少上下文切换,并使代码具有可重用性

如果您想学习Node.js,并且已经知道如何进行异步编程,那么我建议您进行重写

此外,我还使用Node.js制作了2个游戏服务器,因此,如果您有进一步的问题,我有丰富的经验:

您可能还想使用WebSockets查看BiSON以节省带宽,我专门针对HTML5游戏编写了以下内容:

是的,node.js非常适合游戏服务器开发。 node.js的网络IO能力比python好得多。 但是重写是一个巨大的代价,你仍然不能拿a 如果只有一个node.js进程,则具有可扩展性优势。 已经有一个游戏服务器框架支持多进程和更具可扩展性,请查看以下内容:

还有一个完整的开源演示:

是的,node.js非常适合游戏服务器开发。 node.js的网络IO能力比python好得多。 但是重写是一个巨大的代价,如果只有一个node.js进程,您仍然无法利用可伸缩性。 已经有一个游戏服务器框架支持多进程和更具可扩展性,请查看以下内容:

还有一个完整的开源演示:

如果它没有坏,就不要修理它。我从来没有从头写过任何东西。如果它没有坏,就不要修复它。我从来没有从头重写过任何东西。