Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
686 kez görüntülendi
ios development kategorisinde tarafından
iOS uygulamamda yayınladığım bazı içeriklerde youtube videoları kullanıyorum. Ancak Youtube ülkemizde yasaklandığında, doğal olarak bu içeriklere kullanıcılar erişemiyor.

İstiyorum ki, Swift veya Obj-C ile böyle bir olası durumu kontrol altına alarak kullanıcıya bir alternatif sunabileyim. Yani kısaca; site erişilebiliyor mu erişilemiyorsa diğer sunucudan videoyu çağır gibi...

Ancak yasaklanan siteleri NSHTTPURLResponse HTTP status code ile kontrol ettiğimde sonuç "200" yani başarılı olarak döndüğünden istediğim etkiyi elde edemiyorum.

Bu durumda daha farklı nasıl bir kontrol sağlamam gerekir ?

PHP ile bu işi kolaylıkla çözebiliyorum. PHP tarafındaki bu kodların Swift veya Obj-C'deki karşılığını öğrenebilir miyim ?

<?php $host = 'thepiratebay.org'; // yasaklı bir site örneği
if($socket = @fsockopen($host, 80, $errno, $errstr, 30)) {
echo 'online!';
fclose($socket);
} else {
echo 'offline.';
} ?>

1 cevap

+1 oy
tarafından
tarafından seçilmiş
 
En İyi Cevap

verdiğin örnekte bir soket bağlantısı açmaya çalışarak kontrol etmeye çalışıyorsun.
bu noktadan hareketle ios üzerinde'de bir soket bağlantısı açmayı deneyerek bu işi gerçekleştirebilirsin.
ios için hazırlanmış bir çok 3rd party websocket library'si mevcut bunlardan birini kullanabilirsin. mesela;
https://github.com/square/SocketRocket

tarafından
Teşekkür ederim cevabınız için. İnceledim, test etmeye çalıştım ama çok karışık ve zor; bir  türlü kurulum bile yapamadım projede. :(

ben örnek olması açısından php socket'i gösterim. Yani  yapmak istediğim bu işlem için iOS tarafında daha kısa yoldan bir çözüm sunuluyor mu ?  En azından 3rd party kütüphaneler kullanmadan ?
tarafından
+1
açıkçası soket bağlantısıyla da bu işi nasıl yaptığını tam anlayamadım.
ülkemizde web sitelerini engellemek için tib tarafından genelde dns zehirlemesi yapılıyor.
bu sayede gitmek istediğiniz içerik yerine tib'in engelleme sayfalarıyla karşılaşıyorsunuz.
sonuçta başarılı bir http response dönüyor ve bu sitenin engellenmiş olduğunu anlamak açısından yeterli değil.
bu durumda yönlendirilen engelleme sayfası içeriğindeki belirli paternleri kontrol etmek ve sayfanın engellendiğini anlamak mümkün olabilir. Daha önce hiç denemedim ama böyle bir yol izlenebilir. regex kullanarak  mesela.
tarafından
Evet, haklısınız. Bu durumda galiba kalıcı bir çözüm söz konusu olmamış oluyor. Çünkü yasaklanan sitelerdeki içerikler de değişim gösterebiliyor. Regex ile varılan sonuç da bir her zaman doğru sonuça ulaştırmayabilir.

PHP sunucu durumunu kontrol için örnek olsun diye vermiştim ama yanlış bir örnek oldu haklısınız :)
...