Blog: http://www.ddcs.re/tr
E-posta: exportit.ddcs@gmail.com
Ana hedefi başka bir Android sistemi ya da PC gibi diğer cihazlarda, Android telefon ya da tablet bulunan verilerin kullanımına izin vermek gibi, ya da medya TV seti uyumlu olup olmadığını. Bunun için, en standart protokolleri, UPnP ve HTTP kullanır.
dışa Sunucu ve Client (Android masaüstünde iki simgeler) uygular. Sunucu video, ses ve görüntü dosyaları, ve Android sistemi bulabileceğiniz ayrıca pdf ve eBook dosyaları bir liste oluşturmak. Onların özellikleri ile bu dosyaların listesi belleğinde ayarlanan ve bir UPnP Directory Service ve bir HTTP sunucusu aracılığıyla yayınlanmaktadır.
Dosyaları yalnızca dört kategoride dağıtılır: video dosyaları (mp4, WebM ve 3GPP) ses dosyaları (MP3, OGG ve m4a), görüntü dosyaları (jpeg, gif veya png) ve e-kitaplar (pdf, prc, epub, pdb, mobi ve djvu).
Sunucu birkaç yüz bir telefon ya da tablet üzerinde normalde ne gibi görünüyor, binlerce dosya yönetmek için tasarlanmış değildir.
Her şeyden önce, sadece sunucuyu başlatmak ve başlatma işleminin bitmesini beklerler. WiFi veya mobil ağda iseniz durumunu ve bunu denemek için URL'leri kontrol edebilirsiniz. Fort insanların çoğu sunucu Mobil ağ erişilemez. Önce sunucu yerel bir web tarayıcısı işaret ile dağıtımını ne kontrol edebilirsiniz URL pencere sunucusu dışarı gittikten sonra (gerçek sunucu arka planda çalışan). Tarayıcınızdan HTML sayfaları erişmek için IPv6 geri döngü adresi kullanmak da mümkündür "http://[::1]:8192" gibi bir URL ile.
İkinci adım olarak, sunucu adını değiştirmek ve belki de dil ve cihaza yazı tipi boyutunu uyarlamak için sunucu yapılandırma kullanabilirsiniz.
Bir sonraki adım tüm kategoriler erişim yönetici olarak kullanıcı adı ve şifre tanımlanmasında oluşur.
Ne zaman çalışır, belirli kategorilere erişimi olan ek kullanıcı adlarını tanımlayabilirsiniz.
Internet'ten erişilebilir olmasını evinizin Wi-Fi bağlıyken ve nihayet "port yönlendirme" tanımlayabilirsiniz. Eğer tam destek UPnP ile uygulama kullanıyorsanız, sadece konsolda yapılandırmada olmayan boş port takma tanımlamak ve çalışıp çalışmadığını kontrol etmek gerekir. Ücretsiz uygulama ile el ADSL yönlendirici yapılandırmak zorunda. Iyi görünüyor zaman destek JavaScript ile bir halka açık ücretsiz Web proxy kullanarak, size herhangi bir web tarayıcısı ile evde deneyebilirsiniz.
Desteklenen rağmen HTTPS nedeniyle basit HTTP göre akıllı telefonlar ve yoksul performansları ile kullanmak için karmaşıklığı normal kullanıcılar için en iyi olmak için görünmüyor.
port yönlendirme ve kimlik doğrulama çalışırken, sen www.ddcs.re üzerinde veri yayınlama, internette kolayca erişilebilir olması için "kulüp" seçeneğini kullanabilirsiniz. Kendi dış IP adresinin Wifi ağ erişilebilir değil çünkü kendi sunucusu Web proxy kullanımını gerektirir test etmek için. Bu seçenek, izin sadece sunucu adı, küçük bir açıklama cümle ve simge olarak resminizin biri tarafından tanımlanan sağ sunucu hattında tıklayarak, IP adresi ve port numarası ile değişen URL dağılımını önlemek için.
UPnP desteği Teleal Cling 1.0.5 (Copyright (C) 2010 Teleal GmbH, İsviçre) tarafından sağlanır ve Http Server NanoHTTPD sürümü 1.25, Telif 2001,2005-2012 Jarno Elonen ve 2010 Konstantinos Togias üstüne inşa edilmiştir. Böylece bu uygulama LGPL yazılım içerir. Her iki değiştirilmiş sürümlerinde değil, yerel kod bulunmaktadır. TelealCling kütüphane cling-core, cling-support (1.0.5) ve teleal-common (1.0.14) jar dosyalarını gelen uygulama tarafından gerekli birkaç değişiklik ile inşa tek kavanoz dosyası ... NanoHttpd DLNA, HTTP başlıklarını, istek günlüğü eklemek için ve bir başlangıç ana sayfası sağlamak için, "HEAD" yöntemini desteklemek için modifiye edildi. Kaynak kodu yürütülebilir olarak kullanılabilir.
açıklamalarda kullanılan tüm ifadeler tasarlanmış ve Enrico Gollnow (Erni) tarafından yapılmıştır. Onun ve suratlar (http://www.gomotes.com) hakkında daha fazla bilgi bulmak için onun web sitesini ziyaret edin.
Parola şifreleme rutin web tarayıcı tarafı ve sunucu tarafında SpongyCastle java kitaplığında Tom Wu'nun jsbn kitaplığı (Javascript BigInteger ve RSA) kullanır.
Bu uygulama, hizmet bulma ve kayıt için Java'da çoklu yayın DNS'nin bir uygulaması olan JmDNS'yi kullanmaktadır. Bu kütüphane, Apple'ın Bonjour protokolüyle tamamen birlikte çalışabilir. Apache Lisansı, Version 2.0'da lisans verilen bu verimli kütüphane için Arthur van Hoff, Rick Blair ve Kai Kreuzer'e teşekkürler.
Bu uygulama MIT Lisansı altında Julien 'delphiki' Villetorte gdelphiki@gmail.com tarafından geliştirilen Playr adında bir HTML5 video oynatıcı kullanır, bu harika iş ve onu kullanmak için tüm teşekkürler.
PDF dosyalarını bir Web Görünümü aracılığıyla göstermek için PDF.JS kullanıyoruz. Bu Açık Kaynak projesi, bir Apache Sürüm 2 lisansına tabidir. PDF.js (https://mozilla.github.io/pdf.js/), HTML5 ile oluşturulmuş bir Taşınabilir Belge Biçimi (PDF) görüntüleyicisidir. PDF.js topluluk odaklıdır ve Mozilla tarafından desteklenir.
epubjs-reader paketi (https://github.com/futurepress/epubjs-reader) epub e-Kitapları için kullanılır ve kitaplar bir Web Görünümünde gösterilir. Bu yazılım, bir MIT Lisansı aracılığıyla edinilebilir.
Artık Acme4J'yi, RFC 8555'te (https://tools.ietf.org/html/rfc8555) belirtildiği gibi _Otomatik Sertifika Yönetim Ortamı_ (ACME) protokolü için Java İstemcisi (https://shredzone.org) olarak kullanıyoruz. ). ACME, bir sertifika yetkilisinin (CA) ve bir başvuru sahibinin doğrulama ve sertifika verme sürecini otomatikleştirmek için kullanabileceği bir protokoldür. Let's Encrypt ile bağlantılı olmayan veya Let's Encrypt tarafından onaylanmayan bağımsız bir açık kaynak uygulamasıdır.
Acme4J, JSON Web Token'ın (JWT) ve JOSE spesifikasyon paketinin sağlam ve kullanımı kolay bir açık kaynak uygulaması olan Jose4j kitaplığına (https://bitbucket.org/b_c/jose4j/wiki/Home) ihtiyaç duyar.
İki ana bileşenleri, sunucu ve istemci, ve, kurulumdan sonra, masaüstünde iki simge var.
Sunucu gerçek Media sunucusu UPnP ve HTTP hizmeti veren, aslında uzun süren bir hizmeti başlatır. Bu hizmet arka planda çalışan, sadece küçük bir bildirim simgesi Android görev çubuğunda yer almaktadır. Sunucusunun önemli bir alt görev, yapılandırma. Sunucu ihracatı yerel WiFi ağ üzerindeki tüm veri dosyalarınızı varsayılan tarafından. Sen yapılandırma yoluyla dosyaları kaldırın / seçebilirsiniz.
Yerel (Wifi) Ağ üzerinde bulunan UPnP sunucuları tarafından dağıtılan istemci verileri işler. Bu mp4, WebM veya 3gpp videoları gösteren bir MEDIAPLAYER alt görevler olarak vardır ve MP3, OGG veya m4a ses dosyaları, fotoğrafları görüntülemek için bir webView iletişim penceresi dinliyor. Ayrıca, bir arka plan hizmeti sunucusundan dosya indirmek için başlamış olabilir. Sunucusundan önce başladığında, istemci ancak veri dosyaları, boş sunucu bir tür dağıtmak olmadan UPnP hizmeti başlatılamıyor. Bu hizmet erişmek için gerekli diğer UPnP sunucuları.
Sistemin ayarlarında, daha sonra gelişmiş ayarlar, pil yöneticisi bulabilirsiniz. kalıcı çalışan sunucu yukarı ve tutmak için güç planı performansını seçin ve korumalı uygulamalarda ve yoğun güç harcayan uygulamalarda bu uygulamayı aktif hale getirmelisiniz.
Mümkünse cihazınız uyku halindeyken ve sunucu çalışırken WiFi'inizi aktif durumda tutmanız ve ayrıca cihazınızda entegre bir DLNA yığını varsa, sistem ayarlarında "yakın cihazlar" ı aramamalısınız.
Sunucu dosya sistemine erişim gerektirir ve Wifi veya mobil ağa bağlı ise veri iletimi etkinse gibi durum değişikliklerini tespit etmek için telefon ayarlarını okumak için. Dış IP adresi ACCESS_COARSE_LOCATION tarafından (yapılandırmada seçeneği) ve ülke kodu değiştirildiğinde, sunucu SMS gönderebilirsiniz İsteğe bağlı olarak, (Değil kesin bir konuma sadece iki harf ülke kodu). İstemci program indirilen dosyaları kaydetmek için harici depolama yazma izni ve müzik dinlerken eğrileri göstermek için ses kayıt izni kullanır.
Lütfen dışa sunucu ile internette dosyalarını yayınlamak için, ADSL yönlendirici HTTP sunucu portu aliasing yapılandırmak zorunda. UPnP protokolü internette mevcut değildir, sadece HTTP. Varsayılan port numarası (eğer yapılandırması aracılığıyla değiştirebilirsiniz) 8192, ve genel ağ için bir takma portu, dışa sunucunun WiFi IP adresi ile ilişkili ADSL router verilmesi gerekir. Yapılandırmasında varsayılan harici port numarası 0, ama 8192 veya 80 gibi ne istediğinizi ayarlayabilirsiniz. Lütfen sunucusuna erişmek için kullanılacak URL, sunucu denetim penceresinin sağ üst tarafında verilir.
Web sunucum yıllardır kendinden imzalı sertifikalarla HTTPS'yi destekliyordu, ancak çalışmasına rağmen bu şekilde sorunlar ve hata mesajları veriyor. Bu nedenle, standart X509 sertifikalarını almak ve sürdürmek için Otomatik Sertifika Yönetim Ortamı_ (ACME) protokolünü uygulamaya karar verdim.
ACME protokolünün bazı teknik gereksinimleri vardır, herkes tarafından kullanılamaz. Bu protokolü kullanmak için harici IP adresinizde sabit bir DNS adına ihtiyacınız var. X509 sertifikası, IP adreslerinde değil, yalnızca bir DNS adına ayarlanmalıdır.
Let's Encrypt'ten sertifika almak için bu harici DNS adında standart bağlantı noktası numarasına (80) sahip bir HTTP sunucusu kullanmanız gerekir. Uygulamamla, sertifikayı yalnızca HTTP harici bağlantı noktası takma adı "80" olarak ayarlanmış olarak çalışan bir sunucuda alabilirsiniz. Ev Wi-Fi ağınızda bu değeri yalnızca bir sunucu kullanabilir. Geçerli bir sertifikanız olduğunda, "443" olan HTTPS varsayılan bağlantı noktasını yalnızca "takma bağlantı noktası" olarak ayarlanmış Web sunucularınızdan birinde kullanabilirsiniz. Ancak cihazınızı "root" etmekten kaçınmak için HTTP için 8080 ve HTTPS için 8443 örneğine göre 1024'ün üzerindeki bağlantı noktalarını "yerel" bağlantı noktası numaraları olarak kullanmalısınız.
"Yapılandırma" paneli, hem HTTP hem de HTTPS protokolleri için bağlantı noktası takma adlarını destekleyecek şekilde değiştirildi ve ayrıca harici IP adresiniz için çalıştığını bildiğiniz bir DNS adı verebilirsiniz. Bu ad, varsa ağ sağlayıcınızın adına ek olarak X509 sertifikanızda tanımlanacaktır. Sertifika, aynı Wi-Fi ağında çalışan diğer dışa aktarma sunucularına otomatik olarak dağıtılır ve HTTPS'nin İnternet üzerinden ancak diğer bağlantı noktası takma ad değerleriyle kullanılmasına izin verir.