0

我有一个NSMenu我想用通过pusherapp推送到我的应用程序并使用libPusher 客户端库接收的项目来更新。但似乎没有收到事件NSEventTrackingRunLoopMode

给定以下代码段:

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

我在保持菜单打开的同时等待推送发生,我希望立即收到该事件,但我只在关闭菜单时收到它。

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

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

4

1 回答 1

0

我是 libPusher 的作者。您看到这个问题的原因是因为 libPusher 使用的底层 WebSocket 库,SocketRocket只能在默认的运行循环模式下工作。

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

现在,我刚刚检查了未解决的 Github 问题,并意识到您是这个错误的原始报告者,所以您可能已经知道这一切,但无论如何我都会为后代发布这个答案。

于 2012-10-29T18:20:02.693 回答