【问题标题】:Handling network and socket connection using ReactiveCocoa使用 ReactiveCocoa 处理网络和套接字连接
【发布时间】:2014-11-07 09:58:28
【问题描述】:

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

应用程序: 应用程序等待网络连接,然后通过从 RESTful 后端获取令牌登录,然后使用此令牌连接到套接字。

我通过链接三个信号解决了这个问题,这基本上导致应用程序一个接一个地执行任务: 当有互联网时 -> 获取令牌 -> 当有令牌时 -> 连接套接字 现在,如果我失去我的网络连接并在某个时候重新获得它,这个过程将从头开始并重新连接套接字。

问题 即使网络连接保持稳定(这种情况经常发生),如果套接字断开连接怎么办?仅当网络连接丢失并再次获得时,链才会重新启动。所以套接字应该在断开连接时再次尝试连接,但前提是有网络连接。

我一般如何使用 ReactiveCocoa 或响应式编程来实现这些依赖项?

【问题讨论】:

    标签: ios objective-c reactive-cocoa internet-connection frp


    【解决方案1】:

    我不知道这将如何/具体地/在 Reactive Cocoa 中实现,但我的现成解决方案是加入第一个和最后一个单元格:

    • 当有互联网但没有套接字时:获取令牌 -> 连接

    这样,当'internet is there'条件变为true时,进程启动,同样,当'socket存在'条件变为false时,进程启动。

    例如,在像 Sodium(Java) 这样的东西中,您可能会使用这样的单元格:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      相关资源
      最近更新 更多