我想要通过pusherapp推送到我的应用并使用libPusher client library收到的项目更新NSMenu
。但似乎没有在NSEventTrackingRunLoopMode
收到事件。
给出以下代码段:
[channel bindToEventNamed:@"my_event" handleWithBlock:^(PTPusherEvent *event) {
NSLog(@"event received");
}];
当我保持菜单打开时,我等待推送发生,我希望立即收到活动但我只在关闭菜单时收到它。
我也尝试将主队列传递给bindToEventNamed:handleWithBlock:queue:
(使用dispatch_get_main_queue();
),但无济于事。
所以我想知道我是做错了还是libPusher中有错误?
答案 0 :(得分:0)
我是libPusher的作者。您遇到此问题的原因是因为libPusher使用的基础WebSocket库SocketRocket仅在默认的运行循环模式下工作。
好消息是,已经在SocketRocket的最新HEAD中修复了这个问题。我已经测试了libPusher最新的SocketRocket并且可以确认它修复了这个问题,我打算将这些更改推送到下一个版本。
现在,我刚刚查看了优秀的Github问题,并意识到你是这个bug的原始记者,所以你可能已经知道了这一切,但我还是要为后人发布这个答案。