Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iOS中检测设备何时从服务器接收数据_Ios_Sockets - Fatal编程技术网

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

如何在iOS中检测设备何时从服务器接收数据,ios,sockets,Ios,Sockets,如何在Objective-C中检测设备何时从服务器接收数据 我有两个问题: 我想连接到服务器,通过套接字接收数据。我能用的图书馆是什么 我通过套接字连接到服务器,我想检测服务器何时将数据推送到设备,设备监听并接收数据?当服务器推送数据时,如何创建侦听线程? 这我使用的是Xcode 5.1,iOS 7.x 更新: 我在这里阅读并跟进: 但现在我有一个问题:如何在应用程序打开期间保持活动套接字,以及如何检测应用程序何时从服务器接收数据 尝试使用 该库允许您设置在收到消息时调用的委托方法 您也可以尝

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

  • 我想连接到服务器,通过套接字接收数据。我能用的图书馆是什么

  • 我通过套接字连接到服务器,我想检测服务器何时将数据推送到设备,设备监听并接收数据?当服务器推送数据时,如何创建侦听线程? 这我使用的是Xcode 5.1,iOS 7.x

  • 更新: 我在这里阅读并跟进:

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

  • 尝试使用

  • 该库允许您设置在收到消息时调用的委托方法


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

    首先,您需要决定要使用哪种套接字技术。因为你/你的队友将在另一边实施它。套接字的健壮性有一个小问题——由于不稳定的移动网络,它们往往不稳定。考虑使用<强> RESAPI+APN<强>(苹果推送通知)。< /P> 如果您确实需要使用插座,请决定使用哪种类型:

    • TCP/UDP套接字()
    • Socket.IO()
    这两种方法都很有效,并得到了广泛的应用。主要的区别在于Socket.IO实现了一个称为heartbeat的功能—您总是知道自己是否已连接。使用TCP套接字(特别是上面提到的框架),在开始发送/接收数据之前,您不知道服务器已关闭(唯一的方法是超时)。另一件事是Socket.IO是一个非常动态的框架,并且仍在不断发展,但是这个框架非常有用。我已经多次实现了这两种方法,我个人会使用Socket.IO,但这完全取决于服务器端实现了什么

    您的另一个问题-检测应用程序何时接收数据:

    • 当应用程序打开时-这两个框架都非常适合
    • 当应用程序处于后台时-不太可能,您需要这样做。更改策略-从服务器接收应下载内容的通知
    • 当应用程序关闭时-仅APN

    谢谢您的回答。我绝对相信SocketIO是一个很棒的框架,但我看到SocketIO只在Socket.IO/Node.js服务器上工作,我的服务器在java环境下运行。和可可豆。我不能用它。。这个消息总是说“超时”。是的,它是从Node.js开始的,但是你也可以用Python()实现服务器端,这也很有魅力:-)好的..我知道..谢谢你的支持..但是最后一个问题,当我推到另一个视图时,套接字是活的吗。示例:在视图1中:连接到套接字->推送到视图2->服务器将数据发送到客户端=>视图1是否可以侦听和接收数据?是的,推送时,视图不会解除锁定-仅当您弹出视图时,该视图才会解除锁定。不过,一个好的做法是为对象创建一个包装器对象,它处理所有通信,并且仅通过协议方法向视图提供数据。推送视图时,在
    prepareforsgue
    中传递包装器对象的指针。