【问题标题】:Pusher vs Pubnub vs open source Socket.io / SignalR.net / Faye / jWebSocket [closed]Pusher vs Pubnub vs开源Socket.io / SignalR.net / Faye / jWebSocket [关闭]
【发布时间】:2012-07-04 02:21:41
【问题描述】:

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

但是,由于我正在管理预算,我担心 Pusher 和 PubNub 成本可能会成为我们的问题,因此我正在考虑使用其中一种开源替代方案 - 我主要关注的是 Socket.io 、Faye 和 jWebSocket。

虽然我自己运行服务,但我有我的顾虑:

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

感谢您的建议。

【问题讨论】:

标签: websocket socket.io signals pubnub ably-realtime


【解决方案1】:

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

我考虑过使用 redis 或在不同端口上运行多个节点实例,然后在我的应用程序端分担负载,但看看 PubNub 的价格,将所有这些都卸载给他们似乎更容易。

在尝试了 Pusher 和 PubNub 之后,我发现 PubNub 对我来说既便宜又低延迟(我在新加坡托管,而 Pusher 对我来说大约是 500 毫秒,而 PubNub 从我的应用程序来说是大约 250 毫秒的往返)。但是,如果您在美国托管,则差异可能会小得多。

我还查看了 Ape-Server,但没有找到任何用于设置发布/订阅模型的好的教程/文档,因此跳过了它 - 但也许你比我更聪明,并且会有更好的体验 :)

【讨论】:

  • “当我将它切换到实时 node.js 时”是什么意思?你的意思是把它移到生产服务器上?服务器是共享托管方案吗?在 AWS 中?规格是什么?另外,每秒 10 个请求,是一个发布者和 3000 个订阅者吗?所以本质上你在一秒钟内发送了 30,000 条消息?如果这样对我来说单核听起来非常好,我希望它会被钉住。请澄清您的测试方法。谢谢。
  • 关于 Ape,他们写道“易于安装”:ape-project.org/download/APE_Complete_Package.html :)
猜你喜欢
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2012-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多