Blog: http://www.ddcs.re
e-pos: exportit.ddcs@gmail.com
Dit het as hoofdoelstelling die gebruik van jou data in jou Android-foon of -tablet, op ander toestelle soos 'n ander Android-stelsel, toe te laat of jou rekenaar, of as die media op jou TV-toestel versoenbaar is. Hiervoor gebruik dit die meeste standaardprotokolle, UpnP en Http.
uitvoer-dit implementeer 'n bediener en 'n kliënt (twee ikone op jou Android-lessenaar). Die bediener bou 'n lys van die video-, klank- en beeldlêers, en addisioneel die pdf en e-boek lêers wat dit in jou Android-stelsel kan vind. Die lys van hierdie lêers met hul eienskappe word in geheue gestel en gepubliseer deur 'n UpnP Directory Service en 'n HTTP-bediener.
Die lêers word slegs in vier kategorieë versprei: die video lêers (mp4, webm en 3gpp) die klank lêers (mp3, ogg en m4a), die prentlêers (jpeg, gif of png), en e-boeke (pdf, prc, epub, pdb, mobi en djvu).
Die bediener is nie ontwerp om duisende lêers te bestuur nie, maar 'n paar honderd lyk soos wat ons normaalweg op 'n foon of tablet het.
Eerstens, begin eers die bediener en wag vir die einde van die inisialiseringsproses. As jy op Wifi of op die Mobiele netwerk is, kan jy die status en die URL's nagaan om dit te probeer. Fort die meeste mense is die bediener ontoeganklik van die mobiele netwerk. U kan eers kyk wat u bediener versprei met 'n webblaaier wat na die plaaslike verwys URL nadat die bediener venster uitgegaan is (die regte bediener loop in die agtergrond). Dit is ook moontlik om die IPv6-terugvoer-adres te gebruik om toegang tot die HTML-bladsy van u blaaier te verkry met 'n URL soos "http://[::1]:8192".
As tweede stap kan jy die bedienerkonfigurasie gebruik om jou bedienernaam te verander en die lettergrootte aan jou taal en toestel aan te pas.
Die volgende stap bestaan daarin om 'n gebruikersnaam en wagwoord as administrateur te definieer met toegang tot alle kategorieë.
As dit werk, kan u bykomende gebruikers name spesifiseer met toegang tot spesifieke kategorieë.
En laastens kan jy 'poortvoorspelling' definieer wanneer jy op jou huis Wifi verbind is om toegang te verkry tot die internet. As jy die volle program met UPnP-ondersteuning gebruik, moet jy net 'n nie-poort-alias in die konfigurasie definieer en die konsole kontroleer as dit werk. Met die gratis program moet jy jou ADSL router handmatig opstel. As dit goed lyk, kan jy dit tuis probeer met enige webblaaier wat jy het, met behulp van 'n gratis publieke Web proxy met Javascript ondersteuning.
HTTPS, hoewel ondersteun, lyk nie die beste vir gewone gebruikers as gevolg van die kompleksiteit om dit met slimfone te gebruik nie en die swak vertonings in vergelyking met eenvoudige HTTP.
Wanneer poortvoorspelling en verifikasie werk, kan u die "klub" opsie gebruik om maklik toeganklik te wees op die internet en u data op www.ddcs.re te publiseer. Om jou eie bediener te toets vereis die gebruik van 'n webproxy omdat jou eie eksterne IP-adres nie vanaf jou Wifi-netwerk beskikbaar is nie. Met hierdie opsie kan u die verdeling van 'n veranderende URL met IP-adres en poortnommer vermy, net op die regte bediener lyn wat deur u bediener naam gedefinieer is, 'n klein beskrywing sin en een van jou prent as ikoon.
Die UPnP-ondersteuning word verskaf deur Teleal Cling 1.0.5 (Kopiereg (C) 2010 Teleal GmbH, Switserland), en die Http-bediener word op die top van NanoHTTPD weergawe 1.25, Copyright 2001,2005-2012 Jarno Elonen en 2010 Konstantinos Togias. So hierdie aansoek bevat LGPL sagteware. Beide is gewysigde weergawes, nie inheemse kode nie. Die TelealCling biblioteek is slegs een jarige lêer gebou met 'n paar wysigings wat deur die aansoek vereis word van clingcore, clingsupport (1.0.5) en Telealcommon (1.0.14) .jar lêers ... NanoHttpd is aangepas om die "HEAD" -metode te ondersteun, die DLNA HTTP-hoofde by te voeg, logging aan te vra en 'n aanvanklike tuisblad te verskaf. Die bronkode is beskikbaar as uitvoerbaar.
Al die emosies wat in die kommentaar gebruik is, is ontwerp en gemaak deur Enrico Gollnow (Erni). Besoek sy webwerf om meer inligting oor hom en sy smileys te vind (http://www.gomotes.com).
Die wagwoord enkripsie roetine gebruik Tom Wu se jsbn biblioteek (Javascript BigInteger en RSA) op die webblaaier kant en die SpongyCastle java biblioteek aan die bediener kant.
Hierdie aansoek gebruik JmDNS, 'n implementering van multi-cast DNS in Java vir diensontdekking en registrasie. Hierdie biblioteek is ten volle interoperabel met Apple se Bonjour-protokol. Baie dankie aan Arthur van Hoff, Rick Blair en Kai Kreuzer, vir hierdie doeltreffende biblioteek wat gelisensieer is onder die Apache-lisensie, Weergawe 2.0.
Hierdie aansoek gebruik 'n HTML5-videospeler genaamd Playr, ontwikkel deur Julien 'delphiki' Villetorte gdelphiki@gmail.com onder MIT License, al my dankie vir hierdie goeie werk en die toestemming om dit te gebruik.
Ons gebruik PDF.JS om PDF-lêers deur 'n WebView te wys. Hierdie oopbronprojek is onderhewig aan 'n Apache Weergawe 2-lisensie. PDF.js (https://mozilla.github.io/pdf.js/) is 'n draagbare dokumentformaat (PDF)-kyker wat met HTML5 gebou is. PDF.js is gemeenskapsgedrewe en word deur Mozilla ondersteun.
Die epubjs-reader-pakket (https://github.com/futurepress/epubjs-reader) word vir epub-e-boeke gebruik en die boeke word in 'n webaansig gewys. Hierdie sagteware is beskikbaar deur 'n MIT-lisensie.
Ons gebruik nou Acme4J as Java-kliënt (https://shredzone.org) vir die _Automatic Certificate Management Environment_ (ACME) protokol soos gespesifiseer in die RFC 8555 (https://tools.ietf.org/html/rfc8555) ). ACME is 'n protokol wat 'n sertifikaatowerheid (CA) en 'n aansoeker kan gebruik om die proses van verifikasie en sertifikaatuitreiking te outomatiseer. Dit is 'n onafhanklike oopbron-implementering wat nie geaffilieer is met of onderskryf word deur Let's Encrypt nie.
Acme4J benodig die Jose4j-biblioteek (https://bitbucket.org/b_c/jose4j/wiki/Home) wat 'n robuuste en maklik om te gebruik oopbronimplementering van JSON Web Token (JWT) en die JOSE-spesifikasiesuite is.
Die twee hoof komponente is die bediener en die kliënt, en na die installasie het jy twee ikone op jou lessenaar.
Die bediener begin met 'n lang lopende diens wat eintlik die regte Media-bediener is wat UPnP- en HTTP-dienste lewer. Hierdie diens loop in die agtergrond, Net 'n klein kennisgewingsikoon is op die Android-taakbalk. 'N Belangrike subtaak van die bediener, is die konfigurasie. By verstek uitvoer die bediener al u data lêers op die plaaslike Wifi netwerk. U kan lêers kies / ontsluit deur die konfigurasie.
Die kliënt verwerk data versprei deur UPnP-bedieners wat op die plaaslike (Wifi) netwerk gevind word. Dit het as subtasks 'n Media Player vir die vertoon van mp4, webm of 3gpp video's en luister na mp3, ogg of m4a klank lêers, 'n Webview dialoog venster vir die vertoon van foto's. Daarbenewens kan 'n agtergrond diens begin om lêers van die bediener af te laai. Wanneer die bediener begin het, begin die kliënt die UPnP-diens, maar sonder dat data lêers versprei word, 'n soort leë bediener. Hierdie diens is nodig om toegang te verkry tot ander UPnP-bedieners.
In die stelsel se instellings, dan Gevorderde instellings, kan u Batterybestuurder vind. Om die bediener permanent te hou, moet jy Prestasie vir die Kragplan kies en hierdie program aktiveer in beskermde programme en in kragintensiewe programme.
As dit moontlik is, moet jy jou WiFi aktief hou wanneer jou toestel slaap en die bediener loop. As jou toestel ook 'n geïntegreerde DLNA-stapel het, moet jy nie na "nabygeleë toestelle" in stelselinstellings kyk nie.
Die bediener benodig toegang tot die lêerstelsel en lees die telefooninstellings vir die opsporing van staatsveranderinge soos op Wifi of indien data-oordrag geaktiveer is indien dit aan die mobiele netwerk gekoppel is. Opsioneel kan die bediener SMS stuur as die eksterne IP-adres verander word (opsie in die opstelling) en die landkode deur Access_Coarse_Location, (nie 'n presiese plek net die twee letters landkode nie). Die kliënt program gebruik die toestemming om te skryf aan eksterne berging vir die stoor van afgelaaide lêers, en die rekord klank toestemming vir die vertoon van krommes wanneer jy na musiek luister.
Om lêers op Internet te publiseer met u uitvoer-dit-bediener, moet u die HTTP-bedienerpoort aliasing instel in u ADSL router. UPnP-protokol is nie beskikbaar nie Op die internet, net HTTP. Die standaard poort nommer is 8192 (jy kan dit verander deur die konfigurasie), en 'n alias poort vir die publieke netwerk moet gegee word op die ADSL router wat verband hou met die Wifi IP-adres van die uitvoer-dit bediener. Die standaard eksterne poortnommer in die opstelling is 0, maar jy kan stel wat jy wil soos 8192 of 80. Die URL wat gebruik word om toegang tot jou bediener te kry, word bo-aan die bediener venster gegee.
My webbediener ondersteun al jare lank HTTPS met selfondertekende sertifikate, maar alhoewel dit werk, gee hierdie manier probleme en foutboodskappe. Dit is die rede hoekom ek besluit het om die Automatic Certificate Management Environment_ (ACME) protokol te implementeer om standaard X509-sertifikate te kry en in stand te hou.
Die ACME-protokol het 'n paar tegniese vereistes, dit is nie vir almal bruikbaar nie. Om hierdie protokol te gebruik, benodig u 'n vaste DNS-naam op u eksterne IP-adres. Die X509-sertifikaat moet slegs op 'n DNS-naam gestel word, nie op 'n IP-adresse nie.
Om die sertifikaat van Let's Encrypt te kry, moet jy 'n HTTP-bediener met die standaardpoortnommer (80) op hierdie eksterne DNS-naam gebruik. Met my toepassing kan jy die sertifikaat net kry op 'n bediener wat loop met HTTP eksterne poort alias gestel op "80". Slegs een bediener kan hierdie waarde op jou Wi-Fi-huisnetwerk gebruik. Wanneer jy 'n geldige sertifikaat het, kan jy die HTTPS verstekpoort van "443" net gebruik op een van jou webbedieners wat as "aliaspoort" gestel is. Maar om te verhoed dat jy jou toestel "wortel" moet jy poorte bo 1024 as "plaaslike" poortnommers gebruik deur voorbeeld 8080 vir HTTP en 8443 vir HTTPS.
Die "konfigurasie"-paneel is gewysig om poortaliasse vir beide HTTP- en HTTPS-protokolle te ondersteun, en daarby kan jy 'n DNS-naam gee wat jy weet werk, vir jou eksterne IP-adres Hierdie naam sal in jou X509-sertifikaat gedefinieer word bykomend tot die naam van jou netwerkverskaffer as jy een het. Die sertifikaat word outomaties na ander uitvoer-dit-bedieners versprei wat op dieselfde Wi-Fi-netwerk loop, wat toelaat om HTTPS oor internet te gebruik, maar met ander poort-aliaswaardes.