移动和桌面设备的实时消息服务
Real time messaging service for mobile and desktop devices
我正在寻找将事件从我的服务器推送到客户端的解决方案,这些客户端将是 Android、iOS 和桌面(网络)用户。
我看过很多关于 Parse、Amazon SNS 和 Google 云消息传递的帖子,但没有提到它们的速度和最常见的应用程序或与简单的 TCP 流或 websockets 的比较?
我需要每个客户端达到 50 events/second bi-directonal 吞吐量(每个事件 1kb),最大延迟 150 毫秒 。
仅使用事件的 TCP 流 对比 websockets 对比 SNS/Parse/GCM[ 有什么缺点=25=]?
推送通知(GCM 和 APNs)
优点:即使客户端应用程序不是 运行,您也可以访问设备。
缺点:吞吐量低;高延迟
原始 TCP
优点:高吞吐量;低延迟;双向
缺点:不能通过典型的代理和防火墙;需要客户端应用 运行
WebSockets
优点:高吞吐量;低延迟;双向;通过防火墙
缺点:并非所有代理都支持它们;需要客户端应用 运行
此外,还有HTTP Streaming和HTTP Long Polling。
你可以试试 SignalR。
ASP.NET SignalR 是面向 ASP.NET 开发人员的新库,它使向您的应用程序添加实时 Web 功能变得异常简单
我的一位同事将此库用于 Web,window、android、mac 等用于实时消息传递。
在这里您可以找到一些基准:http://blog.arungupta.me/rest-vs-websocket-comparison-benchmarks/
这个更技术性的问题可能对您或其他人也有帮助:What is the fundamental difference between WebSockets and pure TCP?
引用已接受的答案:
在内联网边界内工作时,通过 TCP 套接字进行通信会更容易,因为您可能可以控制该网络上的机器并可以打开适合建立 TCP 连接的端口。
通过 Internet,您正在与另一端的其他人的服务器通信。他们极不可能为连接打开任何旧套接字。通常他们只有几个标准端口,例如用于 HTTP 的端口 80 或用于 HTTPS 的 443。因此,要与服务器通信,您必须使用这些端口之一进行连接。
我正在寻找将事件从我的服务器推送到客户端的解决方案,这些客户端将是 Android、iOS 和桌面(网络)用户。
我看过很多关于 Parse、Amazon SNS 和 Google 云消息传递的帖子,但没有提到它们的速度和最常见的应用程序或与简单的 TCP 流或 websockets 的比较?
我需要每个客户端达到 50 events/second bi-directonal 吞吐量(每个事件 1kb),最大延迟 150 毫秒 。
仅使用事件的 TCP 流 对比 websockets 对比 SNS/Parse/GCM[ 有什么缺点=25=]?
推送通知(GCM 和 APNs)
优点:即使客户端应用程序不是 运行,您也可以访问设备。
缺点:吞吐量低;高延迟
原始 TCP
优点:高吞吐量;低延迟;双向
缺点:不能通过典型的代理和防火墙;需要客户端应用 运行
WebSockets
优点:高吞吐量;低延迟;双向;通过防火墙
缺点:并非所有代理都支持它们;需要客户端应用 运行
此外,还有HTTP Streaming和HTTP Long Polling。
你可以试试 SignalR。
ASP.NET SignalR 是面向 ASP.NET 开发人员的新库,它使向您的应用程序添加实时 Web 功能变得异常简单
我的一位同事将此库用于 Web,window、android、mac 等用于实时消息传递。
在这里您可以找到一些基准:http://blog.arungupta.me/rest-vs-websocket-comparison-benchmarks/
这个更技术性的问题可能对您或其他人也有帮助:What is the fundamental difference between WebSockets and pure TCP?
引用已接受的答案:
在内联网边界内工作时,通过 TCP 套接字进行通信会更容易,因为您可能可以控制该网络上的机器并可以打开适合建立 TCP 连接的端口。
通过 Internet,您正在与另一端的其他人的服务器通信。他们极不可能为连接打开任何旧套接字。通常他们只有几个标准端口,例如用于 HTTP 的端口 80 或用于 HTTPS 的 443。因此,要与服务器通信,您必须使用这些端口之一进行连接。