我如何检测设备何时从iOS服务器接收数据

时间:2014-04-17 10:31:36

标签: ios sockets

如何检测设备何时从Objective-C中的服务器接收数据 我有2个问题:

  
      
  1. 我想连接到服务器以通过套接字接收数据。什么是我可以使用的图书馆?

  2.   
  3. 我通过套接字连接到服务器,我想检测服务器何时将数据推送到设备,设备监听和接收数据?如何在服务器推送数据时创建一个线程来监听?   这个?我正在使用Xcode 5.1,iOS 7.x

  4.   

更新: 我在这里阅读并关注:Connect server with socket of raywenderlich

但现在我有一个问题:应用程序打开时如何保持活动套接字以及如何检测应用程序何时从服务器接收数据?

3 个答案:

答案 0 :(得分:0)

  1. 尝试使用 Socket.IO Objective C library.

  2. 该库允许您设置在收到邮件时调用的委托方法。

答案 1 :(得分:0)

您也可以在IOS中尝试使用此库进行套接字编程。 CocoaAsyncSocket

答案 2 :(得分:0)

首先,您需要确定要使用的套接字技术。因为你/你的队友将在另一方面实施它。套接字有一个很小的问题 - 由于移动网络不稳定,它们往往不稳定。请考虑使用 REST API + APN (Apple推送通知)。

如果您确实需要坚持使用套接字,请记下您想要使用的类型:

它们都很好用,并广泛使用。主要区别在于Socket.IO实现了一项名为heartbeat的功能 - 您始终知道自己是否已连接。使用TCP套接字(尤其是上面提到的框架),您不知道服务器已关闭,直到您开始发送/接收数据(找出的唯一方法是超时)。另外一点是Socket.IO是非常动态的框架,并且仍在不断发展,但框架非常实用。我已经实现了很多次,我个人使用Socket.IO,但这完全取决于服务器端实现的内容。

您的其他问题 - 检测应用何时收到数据:

  • 当应用开启并打开时 - 两个框架都是为此而制作的
  • 当应用在后台时 - 实际上并非如此,您需要APN。更改策略 - 从服务器接收应下载内容的通知。
  • 应用关闭时 - 仅限APN ...