0

pusherappを介してアプリにプッシュされ、 libPusherクライアントライブラリを使用して受信したNSMenuアイテムで更新したいものがあります。しかし、イベントはで受信されていないようです。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で修正されています。libPusherを最新のSocketRocketに対してテストし、この問題が修正されることを確認できました。これらの変更を次のリリースにロールインする予定です。

さて、Githubの未解決の問題を確認したところ、あなたがこのバグの元のレポーターであることがわかりました。おそらくこれはすべてすでに知っていると思いますが、後世のためにこの回答を投稿します。

于 2012-10-29T18:20:02.693 に答える