【问题标题】:Server Side Events with AFNetworking 3.0AFNetworking 3.0 的服务器端事件
【发布时间】:2016-09-18 03:51:29
【问题描述】:

我想监听服务器端事件并使用 AFNetworking 3.0 进行相应更新。我在这里找到了信息nshipster.com/afnetworking-2

这适用于 AFNetworking 2.0。

这是 2.0 版本的代码,

NSURL *URL = [NSURL URLWithString:@"http://example.com"];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:URL];
[manager GET:@"/resources" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
    [resources addObjectsFromArray:responseObject[@"resources"]];

    [manager SUBSCRIBE:@"/resources" usingBlock:^(NSArray *operations, NSError *error) {
        for (AFJSONPatchOperation *operation in operations) {
            switch (operation.type) {
                case AFJSONAddOperationType:
                    [resources addObject:operation.value];
                    break;
                default:
                    break;
            }
        }
    } error:nil];
} failure:nil];

上面的代码似乎是我正在寻找的,但使用的是 AFN 3.0。

有人有什么想法吗?

【问题讨论】:

    标签: ios objective-c afnetworking-3


    【解决方案1】:

    如果我没记错的话(那是几年前),对服务器发送事件的支持首先从 AFNetworking 核心转移到一个名为 AFRocketClient 的单独库,然后最终被放弃了。

    两种可能的解决方案:

    1. 虽然the original AFRocketClient source repo 已被擦除,但仍有a mirror here 包含源。您可以尝试使用 AFNetworking 3 来实现。

    2. 或者,您可以查看EventSource,它是 Swift 中 SSE 的实现。

    我没有在 iOS 应用中看到太多 SSE 的使用。我认为 Apple 推送通知服务是一种更流行的服务器到客户端通知方式。

    【讨论】:

    • 感谢您的帮助。我现在在想,也许我有点困惑,并没有正确解释我在寻找什么。我想监听 json 的事件更改,例如键“1”=值“a”,如果值将服务器端更改为键“1”=值“b”,那么我的数据将更改应用端并相应更新。跨度>
    • 是的,如果您的服务器支持服务器发送事件,那么您可以使用我提供的解决方案之一。
    • 我会的,试一试,然后返回结果。谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多