2014-09-13 60 views
1

我正在学习反应式编程,特别是ReactiveCocoa,我不确定如何处理网络连接和套接字连接。使用ReactiveCocoa处理网络和套接字连接

中的应用: 进行网络连接的应用程序等待然后通过获得来自宁静后端令牌登录,然后使用该令牌连接到插座。

我通过链接三个信号基本上会导致应用程序陆续执行一个任务,解决了这个: 即使世界上互联网 - >获得令牌 - >当有一个象征 - >连接插座 现在,如果我失去了我的网络连接并重新获得它,这个过程将从头开始并重新连接套接字。

问题 如果即使网络连接保持稳定(可能经常发生),套接字也会断开连接怎么办?如果网络连接丢失并重新获得,链只会重新启动。因此,套接字在连接断开时应该尝试再次连接,但只有在网络连接的情况下才能连接。

如何使用ReactiveCocoa或反应式编程来实现这些依赖关系?

回答

0

我不知道如何做到这一点实现/专/在无可可,但我现成的袖口的解决方案是加入第一个和最后一个单元格:

  • 当有互联网,没有插座:获取令牌 - >连接

这样,当'互联网有'条件更改为true时,流程启动,并且'套接字存在'条件更改为false时,流程启动。

例如,像钠(JAVA)你可能会使用这样的细胞:

Cell<Boolean> hasInternet; 
Cell<Socket> socket; 

Cell<Boolean> shouldGetToken = Cell.lift( 
    (hi, s) -> hi && socket == null, hasInternet, socket);