在后台线程iOS上运行Pusher

时间:2014-03-29 14:49:05

标签: ios multithreading pusher

我在主线程上渲染html页面。因此,我不能在与主线程相同的线程上运行Pusher,因为它不断丢弃消息。

在iOS中的后台线程上是否有任何运行方式始终运行Pusher?

我已经尝试过Grand Central Dispatch,但是在初始化之后它不起作用,Pusher回到了主线程上。

谢谢

这是我到目前为止所做的。

dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

            client = [PTPusher pusherWithKey:@"xxxxxxxx" delegate:self encrypted:NO];

            client.reconnectAutomatically = YES;
            client.reconnectDelay = 1; // defaults to 5 seconds

            [client connect];

            PTPusherChannel *channel = [client subscribeToChannelNamed:[NSString stringWithFormat:@"Company_%@", [Settings sharedSettings].company.companyID]];

            [channel bindToEventNamed:@"ServicePrint" handleWithBlock:^(PTPusherEvent *channelEvent) {
                NSLog(@"[pusher event] Received event %@", channelEvent);
                //do some work here
            }];

        dispatch_async( dispatch_get_main_queue(), ^{
            // Add code here to update the UI/send notifications based on the
            // results of the background processing
        });
    });

1 个答案:

答案 0 :(得分:0)

我最终在主线程上使用它并在主线程上删除了许多其他功能。到目前为止似乎工作正常。