【发布时间】:2012-05-29 22:09:09
【问题描述】:
我需要向我的客户端发送一些数据,我想知道使用推送通知是否比使用套接字更好。
我听说有人说套接字不好,因为如果手机更改它的 IP,它们可能会停止工作(无论如何这种情况多久发生一次)。
套接字有多可靠>您更愿意在什么时候使用推送通知?
【问题讨论】:
标签: android ios sockets push-notification
我需要向我的客户端发送一些数据,我想知道使用推送通知是否比使用套接字更好。
我听说有人说套接字不好,因为如果手机更改它的 IP,它们可能会停止工作(无论如何这种情况多久发生一次)。
套接字有多可靠>您更愿意在什么时候使用推送通知?
【问题讨论】:
标签: android ios sockets push-notification
推送通知适用于:
-当您想向设备发送用户未首先请求的信息时(通常是一个 ping,表明服务器上有用户想要下载的新数据)
-当无法保证应用程序正在运行时。
套接字用于:
-当应用程序运行时——也就是用户点击他们想要下载的东西,数据通过套接字发送。
此外,在 Android 上,推送通知的最大数据量为 4K,因为(如前所述)它们仅用于通知,而不是传输大量数据。为此,无论如何您都需要使用套接字。此外,您需要处理套接字确实由于各种原因停止发送数据的事实 - 用户跳 wifi 网络、穿过隧道、开车穿过接收信号不稳定的区域等等。
【讨论】:
应用程序在后台和前台时都可以使用推送通知,但它们的可靠性不如套接字。
一般来说,一个好的解决方案是同时使用两者。您可以在应用程序打开时通过刷新套接字或轮询服务器来响应推送通知。不过,我会避免完全依赖推送通知。只需在您的应用关闭时使用它们。
【讨论】:
推送通知将在您的应用未运行时使用,并且 UILocalNotifications 是在应用未运行时向应用发送信息的唯一方式。
【讨论】:
我听说有人说套接字不好,因为如果手机更改它的 IP,它们可能会停止工作(这种情况多久发生一次)。
我可以给你一些公认的不常见的场景......
我当地的酒吧提供免费无线网络。所以我和朋友喝了一杯,我的手机自动连接到酒吧的无线网络。一旦我离开酒吧并且超出范围,如果我启用了移动互联网,我的手机将连接到我的提供商的数据网络。
在回家的路上,我在当地的街角小店停下来买些杂货。某个时候,我在商店上方为业主的住所设置了 wi-fi,我的手机被配置为记住他们的 wi-fi 连接详细信息,以便连接。我离开商店,超出范围,我的手机再次连接到我的提供商的数据网络。
我决定今晚要吃中餐,就停在我家附近的外卖店。我还为他们设置了 Wi-Fi 系统,我的手机会自动连接到他们的接入点。我离开商店,我的手机连接到我的提供商的数据网络。
我回到家,然后我的手机连接到我自己的 wi-fi 网络。
所以在大约 400 码(约 300 米)的距离内,我的手机会改变连接状态 6 次。
抱歉有点冗长,但这是一个真实的场景 - 我的业务是为私人和小型企业用户提供 IT 支持。
换句话说,无论您的应用做什么,您都需要满足这样一个事实,即移动技术上的网络可能会多次更改,并且您需要监控状态的变化,并在必要时拆除并重新创建现有的连接。
直接套接字连接可能更直接,需要额外处理网络更改。推送通知具有异步的优势,前提是推送服务器设置正确。
【讨论】: