Javascript 使用Meteor.js(Socket.io?)实现细粒度实时

Javascript 使用Meteor.js(Socket.io?)实现细粒度实时,javascript,mongodb,meteor,socket.io,ddp,Javascript,Mongodb,Meteor,Socket.io,Ddp,我们目前正在构建一个基于Meteor.js和Phaser.io的实时多人游戏 我们的问题如下:Meteor的发布/订阅系统不够快,正如我们预期的那样 每秒最多60次,客户端可以调用一个方法来更新已发布的文档。玩家的移动经常会被冻结,因为在MongoDB中写入每个更改,然后与观察者检查更改并推送到其他客户端的限制。如果两个玩家同时移动(这可能意味着在同一个文档上书写),冻结发生的频率更高 显然,如果我问这个问题,我已经确定冻结来自出版物更新时间,而不是来自Phaser.io 所以我的问题是:如何在

我们目前正在构建一个基于Meteor.js和Phaser.io的实时多人游戏

我们的问题如下:Meteor的发布/订阅系统不够快,正如我们预期的那样

每秒最多60次,客户端可以调用一个方法来更新已发布的文档。玩家的移动经常会被冻结,因为在MongoDB中写入每个更改,然后与观察者检查更改并推送到其他客户端的限制。如果两个玩家同时移动(这可能意味着在同一个文档上书写),冻结发生的频率更高

显然,如果我问这个问题,我已经确定冻结来自出版物更新时间,而不是来自Phaser.io

所以我的问题是:如何在Meteor中实现一个“真正的”实时系统

我一直在寻找DDP,但是文档非常糟糕,不能让我认为我可以有效地用它建立沟通过程。似乎完全没有办法用DDP处理客户端和服务器之间的自定义事件

当然,也有Socket.io,但似乎很多人在用Meteor实现它时遇到了麻烦

你会怎么做? 解决问题的最佳工具或方法是什么


谢谢。

我不会用流星。。。。我可能会用Phonenix之类的东西。你试过流星流吗?不幸的是,流星流在流星0.9之后不再可用。我不认识菲尼克斯。我得去看看。目前,主要的问题是,尽管客户端可以通过各种方法轻松地到达服务器,甚至可以尝试猜测结果,但无法从服务器向客户端发送调用。Phoenix是用Elixir构建的。我们不知道这种语言,正在使用Phaser.io->我们需要Node.js/js。