我构建了一个小系统,该系统在客户端上使用dnode,shoe和browserify,在服务器端使用NodeJS和dnode / shoe。我想知道将dnode(RPC)用作实时Web应用程序的唯一协议是否是一个好主意。

让我们看看DNode或任何其他RPC接口的好处。我喜欢能够远程调用函数(RPC)。它绝对胜过Ajax,因为您获得了用于从客户端到服务器以及从服务器到客户端进行通信的一致接口。我还敢打赌,由于Ajax涉及HTTP开销,因此与Ajax相比,您获得的性能指标很小。

但是,使用RPC,您必须处理负载平衡和服务器上的客户端连接。但这与任何websocket实现一起。但是,使用其他Websocket实施,您将拥有一个更为传统的基于事件的系统,在该系统中,客户端会侦听来自服务器的事件并响应这些事件。我尝试使用EventEmitters复制这种接口,但是它很糟糕,而且我不断收到关于过多处理程序的警告。啊!

我正在寻求实现轻巧,干净的界面,可用于开发应用程序。感觉强大并且能够扩展到许多客户的产品。它需要感觉扎实。

我不太确定写这篇文章的问题是什么。我的任务是更新我编写的此代码库,以确保连接不会丢失,并且总体上更可靠。我想我只是拼命地寻求建议或咨询我的应用程序。有没有人愿意和我面对面地讨论这个话题(RPC和实时Web应用程序)?

谢谢阅读。

最佳答案

我一直在研究一些与我看来相同的主题,但有些RPC库很酷,但对于大型应用程序却完全不实用。我实际上是从NowJS开始的,意识到这是一个失败的项目,移至DNode / Shoe / Browserify,最后移至SocketStream,以尝试将一些肮脏的工作卸载到具有统一目标的项目中。我真的不想重写其他人在该主题上已经做过的事情,而套接字流使这变得容易。回到您的问题,正如您在其页面上看到的那样,SocketStream使用粘性会话。这是一个很大的假设,但如果没有进一步的发展,目前可能无法解决。我提到它的原因是,他们谈到了扩展方面正在进行的一些工作。我们可能值得一读或与开发人员联系,看看您是否可以和他谈谈。祝好运!

关于node.js - 具有DNode/Shoe的Node.js实时资料以及所有有关负载平衡的信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15169593/

10-09 23:01