Waarom een laat ingestelde CFStream SOCKS-eigenschap kan worden geweigerd
Pas configureerbare streameigenschappen toe vóór het openen, controleer acceptatie en onderscheid het starten van de stream van het voltooien van de proxy-onderhandeling.
Een callback met de naam “will connect” is geen bewijs dat de CFStream nog configureerbaar is. Apples CFReadStreamSetProperty-contract zegt dat je moet aannemen dat eigenschappen vóór het openen worden ingesteld, tenzij hun eigen documentatie anders vermeldt.
Houd bij een bestaande streamintegratie de volgorde bij elkaar: maak de stream/het paar, bouw het correct getypeerde SOCKS-woordenboek, stel de juiste eigenschap in en controleer het Booleaanse resultaat, registreer daarna gebeurtenissen en begin met openen.
Een false-resultaat is een configuratiefout, geen geïnstalleerde route. Controleer streamtype, eigenschapssleutel, waardetypen van het woordenboek en levenscyclus voordat u doorgaat.
In een gebeurtenisgestuurde opzet kan het openen beginnen zonder dat de onderhandeling is afgerond. Observeer status- en foutgebeurtenissen voordat u de verbinding als bruikbaar beschouwt.
Als een andere bibliotheek de stream bezit, gebruik dan de gedocumenteerde pre-open-hook ervan. Een callback die pas later komt, kan het verkeerde integratiepunt zijn. Eigenschappen wijzigen op een al geopende stream kan die bestaande verbinding niet naar SOCKS verplaatsen.