我有一个NSMenu,我想用通过pusherapp推送到我的应用程序并使用libPusher client library接收的项目进行更新。但在NSEventTrackingRunLoopMode中似乎没有接收到事件。
给定以下代码片段:
[channel bindToEventNamed:@"my_event" handleWithBlock:^(PTPusherEvent *event) {
NSLog(@"event received");
}];当我保持菜单打开时,我等待一个推送发生,我希望立即收到事件,但只有当我关闭菜单时才会收到它。
我还尝试将主队列传递给bindToEventNamed:handleWithBlock:queue: (使用dispatch_get_main_queue();),但无济于事。
所以我想知道是我做错了什么,还是libPusher中有个bug?
发布于 2012-10-30 02:20:03
我是libPusher的作者。您看到这个问题的原因是因为libPusher,SocketRocket使用的底层WebSocket库只能在默认的运行循环模式下工作。
好消息是,SocketRocket的最新负责人已经解决了这一问题。我已经在最新的SocketRocket上测试了libPusher,可以确认它修复了这个问题,我打算在下一个版本中引入这些更改。
现在,我刚刚检查了未解决的Github问题,并意识到您是这个bug的原始记者,所以您可能已经知道了所有这些,但我还是要为后人张贴这个答案。
https://stackoverflow.com/questions/11848971
复制相似问题