4

SocketRocketを使用していますが、バックグラウンドでメッセージを配信できません。アプリを再度開くと、(再接続せずに) 接続が再開され、すべてのメッセージが一度に届きます。

これが私の接続コードです:

- (void)_reconnect {
    _websocket.delegate = nil;
    [_websocket close];

    NSString *host = @"ws://localhost:3030/primus";

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:host]];
    [request setValue:[NSString stringWithFormat:@"<%@>", apiKey] forHTTPHeaderField:@"Authentication"];

    _websocket = [[SRWebSocket alloc] initWithURLRequest:request];
    [_websocket setDelegateOperationQueue:[NSOperationQueue new]];
    _websocket.delegate = self;

    [_websocket open];

    if (DEBUG) {
        NSLog(@"Using: %@", host);
    }
}

私もなしで試しました

[_websocket setDelegateOperationQueue:[NSOperationQueue new]];

ラインですが、それは何の役にも立ちません。

何が起こっているのか分かりますか?

ありがとう!

4

2 に答える 2

0

こんにちは、同じ問題に取り組んでいると述べました。新しいバージョンのソケット ロケットは、この問題の解決に役立ちます。一部のバックグラウンド モードがサポートされるようになりました。ソース コードを参照してください

まだテストしていませんが、これが役立つはずです(最終的な解決策に一歩近づきます)。

于 2015-11-19T10:33:01.630 に答える