我已经构建了一个小系统,在客户端使用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使这很容易。回到你的问题,正如你在他们的页面上看到的,SocketStream使用粘性会话。这是一个很大的假设,但如果没有进一步的发展,目前可能无法解决这个问题。我之所以提到它,是因为他们谈到了他们正在做的一些事情,就规模而言。我们是否值得阅读或联系开发者,看看你是否可以与他讨论。好运!