Pusher vs Pubnub vs开源Socket.io/signal.net/Faye/jWebSocket

Pusher vs Pubnub vs开源Socket.io/signal.net/Faye/jWebSocket,websocket,socket.io,signals,pubnub,ably-realtime,Websocket,Socket.io,Signals,Pubnub,Ably Realtime,我目前正在评估Pusher和PubNub,以便在我的主要web客户端和服务器之间实现双向实时通信。两者看起来都令人印象深刻,Pusher的文档似乎更好,PubNub的可扩展性和可靠性显然是它们的优势 然而,在我管理预算时,我担心Pusher&PubNub成本可能会成为我们的一个问题,因此我正在考虑使用一种开源替代方案——我主要研究了Socket.io、Faye和jWebSocket 尽管我自己运行该服务,但我仍有一些顾虑: 以前是否有人将Socket.io或其他开源解决方案扩展到多个服务器?P

我目前正在评估Pusher和PubNub,以便在我的主要web客户端和服务器之间实现双向实时通信。两者看起来都令人印象深刻,Pusher的文档似乎更好,PubNub的可扩展性和可靠性显然是它们的优势

然而,在我管理预算时,我担心Pusher&PubNub成本可能会成为我们的一个问题,因此我正在考虑使用一种开源替代方案——我主要研究了Socket.io、Faye和jWebSocket

尽管我自己运行该服务,但我仍有一些顾虑:

  • 以前是否有人将Socket.io或其他开源解决方案扩展到多个服务器?PubNub声称每秒处理100万条消息,我有点怀疑Socket.io是否能够在没有数量庞大的服务器的情况下做到这一点,如果它能够工作的话
  • 如果我使用开源解决方案,付费服务中是否有我可能错过的功能
  • 如果我的服务器在AWS上,延迟真的会成为一个问题吗?PubNub位于多个位置,因此我认为这应该会减少延迟,尽管如果需要将消息从美国发送到日本,在日本安装服务器对延迟没有帮助,因为它仍然需要以某种方式到达那里

感谢您的建议。

Faye使用Node.js对我来说非常容易设置,并且最初在测试中表现非常好。然而,即使我的应用程序的负载只有大约每秒10个请求,有大约3000个打开的连接——当我将其切换到live node.js时,cpu使用率被固定在100%(我的设备上有8个内核中的1个)。我对此有点失望,并期待更多

我考虑过使用redis或者在不同的端口上运行多个node实例,然后在我的应用程序端分担负载,但从PubNub的价格来看,将所有这些都转移给他们似乎要容易得多

在尝试Pusher和PubNub之后,我发现PubNub对我来说既便宜又低得多(我在新加坡托管,Pusher对我来说是~500ms,而PubNub对我来说是~250ms往返于我的应用程序)。然而,如果你是在美国主持,那么差异可能会小得多


我也查看了Ape服务器,但没有找到任何关于设置发布/订阅模型的好教程/文档,所以跳过了它-但也许你比我聪明,会有更好的体验:)

你说“当我将其切换到live node.js时”是什么意思?您的意思是将其移动到生产服务器?服务器是否为共享托管方案?在AWS?规格是什么?还有,每秒10个请求,是一个发布者和3000个订阅者吗?那么本质上你是在一秒钟内发送30000条信息?如果是这样的话,对于一个单核来说,听起来非常好,我希望它能被钉住。请澄清您的测试方法。谢谢。关于Ape,他们写道“易于安装”:)在其他免费/付费/开放解决方案中有一个很好的替代列表,例如:GoInstant服务已经停止。自2014年8月31日起生效