Proč může být pozdě nastavená vlastnost CFStream SOCKS odmítnuta
Před otevřením použijte konfigurovatelné vlastnosti streamu, zkontrolujte přijetí a rozlišujte mezi spuštěním streamu a dokončením vyjednávání s proxy.
Zpětné volání s názvem „will connect“ není důkazem, že CFStream je stále konfigurovatelný. Smlouva CFReadStreamSetProperty od Apple říká, že je třeba předpokládat, že vlastnosti musí být nastaveny před otevřením, pokud jejich vlastní dokumentace neuvádí jinak.
U existující integrace streamu držte posloupnost pohromadě: vytvořte stream/dvojici, sestavte správně typovaný slovník SOCKS, nastavte příslušnou vlastnost a zkontrolujte její booleovský výsledek, poté zaregistrujte události a začněte otevírat.
Výsledek false je selhání konfigurace, ne nainstalovaná trasa. Před pokračováním zkontrolujte typ streamu, klíč vlastnosti, typy hodnot slovníku a životní cyklus.
V uspořádání řízeném událostmi může otevírání začít, aniž by vyjednávání skončilo. Sledujte události stavu a chyb, než spojení budete považovat za použitelné.
Pokud stream vlastní jiná knihovna, použijte její dokumentovaný hook před otevřením. Zpětné volání přicházející jen později může být nesprávným integračním bodem. Změna vlastností na již otevřeném streamu nemůže tento existující spoj přesunout na SOCKS.