Hvorfor en sen CFStream SOCKS-egenskab kan blive afvist
Anvend konfigurerbare stream-egenskaber før åbning, kontroller accept, og skel mellem at starte streamen og at fuldføre proxy-forhandlingen.
Et callback kaldet “will connect” er ikke bevis på, at CFStream stadig kan konfigureres. Apples CFReadStreamSetProperty-kontrakt siger, at man skal antage, at egenskaber skal sættes før åbning, medmindre deres egen dokumentation siger andet.
For en eksisterende stream-integration skal du holde sekvensen samlet: opret streamen/parret, byg den korrekt typede SOCKS-ordbog, sæt den relevante egenskab og kontroller dens boolske resultat, registrér derefter hændelser og begynd at åbne.
Et false-resultat er en konfigurationsfejl, ikke en installeret rute. Kontroller stream-type, egenskabsnøgle, ordbogens værdityper og livscyklus, før du fortsætter.
I et hændelsesdrevet arrangement kan åbningen begynde, uden at forhandlingen er færdig. Observer status- og fejlhændelser, før du anser forbindelsen for brugbar.
Hvis et andet bibliotek ejer streamen, brug dets dokumenterede hook før åbning. Et callback, der først kommer senere, kan være det forkerte integrationspunkt. Ændring af egenskaber på en allerede åben stream kan ikke flytte den eksisterende forbindelse til SOCKS.