libPusher + обновление открытого NSMenu

У меня есть NSMenu, который я хочу обновить с помощью элементов, отправленных в мое приложение через pusherapp и полученных с помощью клиентская библиотека libPusher. Но события, похоже, не поступят в NSEventTrackingRunLoopMode.

Учитывая следующий фрагмент:

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

И я жду, пока произойдет нажатие, пока я поддерживаю открытое меню, я ожидаю получить событие немедленно, но я получаю его только тогда, когда закрываю меню.

Я также попытался передать основную очередь bindToEventNamed:handleWithBlock:queue: (используя dispatch_get_main_queue();), но безрезультатно.

Так что мне остается гадать, делаю ли я что-то не так или в libPusher есть ошибка?


person Geoffrey Bachelet    schedule 07.08.2012    source источник
comment
взгляните на stackoverflow.com/questions/2808016/   -  person adc    schedule 07.08.2012
comment
Да, именно это я и говорю, судя по тому, что события не принимаются в _1 _...   -  person Geoffrey Bachelet    schedule 07.08.2012


Ответы (1)


Я автор libPusher. Причина, по которой вы видите эту проблему, заключается в том, что базовая библиотека WebSocket, используемая libPusher, SocketRocket работает только по умолчанию запустить режим цикла.

Хорошей новостью является то, что это было исправлено в последней HEAD SocketRocket. Я протестировал libPusher с последней версией SocketRocket и могу подтвердить, что он устраняет эту проблему, и я намерен применить эти изменения в следующем выпуске.

Теперь я только что проверил нерешенную проблему Github и понял, что вы были первоначальным репортером этой ошибки, так что вы, вероятно, уже все это знаете, но я все равно опубликую этот ответ для потомков.

person Luke Redpath    schedule 29.10.2012
comment
Собственно, отчет об ошибке я опубликовал на github;) - person Geoffrey Bachelet; 30.10.2012