libPusher +更新开放的NSMenu

时间:2012-08-07 15:14:11

标签: objective-c pusher

我想要通过pusherapp推送到我的应用并使用libPusher client library收到的项目更新NSMenu。但似乎没有在NSEventTrackingRunLoopMode收到事件。

给出以下代码段:

[channel bindToEventNamed:@"my_event" handleWithBlock:^(PTPusherEvent *event) {
    NSLog(@"event received");
}];

当我保持菜单打开时,我等待推送发生,我希望立即收到活动但我只在关闭菜单时收到它。

我也尝试将主队列传递给bindToEventNamed:handleWithBlock:queue:(使用dispatch_get_main_queue();),但无济于事。

所以我想知道我是做错了还是libPusher中有错误?

1 个答案:

答案 0 :(得分:0)

我是libPusher的作者。您遇到此问题的原因是因为libPusher使用的基础WebSocket库SocketRocket仅在默认的运行循环模式下工作。

好消息是,已经在SocketRocket的最新HEAD中修复了这个问题。我已经测试了libPusher最新的SocketRocket并且可以确认它修复了这个问题,我打算将这些更改推送到下一个版本。

现在,我刚刚查看了优秀的Github问题,并意识到你是这个bug的原始记者,所以你可能已经知道了这一切,但我还是要为后人发布这个答案。