Diskuze: Komunikace mezi RPi a webserverem
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Mozna je problem v tom, ze nemuis popsat, co chces
Pokud mas webovou stranku, ta ta vetsinou pracuje s http requesty, url adresami.
Napriklad odkazy, iframe, obrazky, tag script, js-requesty:
<a href="server/adresa?akce=1">1</a>
<a href="server/adresa?akce=2">2</a>
Slo by ze stranky pomoci js pracovat i se sockety, ale s tim je dost drbacka. Resi se tam autentizace, pripojeni, na serveru musi bezet socket server. Ano, bude to rychlejsi. Ale, jestli chces jen tlacitka otevrit-zavrit vrata, tak ti staci jen odkazy, ne?
RPI, server pocitac, na kterem bezi php, pripojeny nekde na tvuj router, to
se da nejak nastavit na routeru, jakym zpusobem bude dostupny. Muzes si tam
spustit i name-server, prekladac textovych URL na IP adresu. Ale, muzes to volat
i pres IP adresu. Ta bude ve tvaru neco jako http://192.168.1.1
,
cili
<a href="http://192.168.1.1:8080/adresa?akce=2">2</a>
Tak podobne funguji tiskarny v siti, tvuj pocitac ve stejne siti posle adresu tiskarny routeru a tiskarna si to prevezme. A dal za router, ven, to uz nejde.
Ted je otazka, zda tu stranku chces spoustet jen na lokalnim pocitaci nebo ma
byt viditelna z venku? Z venku potrebujes tu vlastni home-ip-adresu, si myslim.
Ale moc jsem zatim nic takove nedelal.
Cili, pokud spustit stranku na lokalnim pocitaci, tak ti odkazy s tou ip budou
fungovat. Z venci nikoliv, protoze z venci to jde pres router cloveka, kde
hostujes stranky a on do tve site nema pristup. Ale, tvuj router ma nejakou
adresu a na ni to poslat muzes, kdyz mu pak reknes, co s tim ma pak delat.
Nebo, muzes si udelat nekde na webu prostrednika.
U sebe na pc spustis program, ktery se bude neustale, treba pres ty websockety,
dotazovat prostrednika, zda ma nejaky pozadavek. A kdyz se pozadavek objevi,
zpracuje ho a posle na to RPI.
Cili, funguje to podobne jako chat. Se tam nalogujes a vybiraz data z sql. Ty
pak tvuj program preposila na to RPI. Nebo v pripade chatu na obrazovku
[pc1 outside/inside stranka] ---> (send) [pc2 outside php/sql server]
[pc3 inside stranka] <--- (receive) <--- [pc2] // aby to fungovalo, tak pc3 musi neustele skenovat pc2, byt zapnut
[pc3 inside stranka] (working)
[pc3 inside stranka] ---> (send) ---> [pc4 inside rpi] ----> (send) ---> garaz motor
pc3 a pc4 muze byt jeden a tentyz, rpi
Blbe je, ze ti takto, pokud to nezasifrujes, muze nekdo spamovat pozadavky. A
tez nepohlidas, jak casto lze pozadavky zasilat a pretizi ti doma sit, treba. A
ze k tomu potrebujes ten venkovni server.
A blbe je, ze ziskat adresu routeru nevim, zda ti dovoli firma, co u ni mas
internet
Je to sice starsi prispevok, ale mozno Ti to este pomoze:
... toto je najjednoduchsi sposob, ako z internetu presuvat poziadavky do domacej siete, ak nemas externu IP, alebo DDNS, alebo ak na internete nemas server (nemyslim web-server, ale nejaky iny servis alebo nejaku komunikaciu).
To iste vies urobit aj cez Databazu, ak v nej vies menit cez web-stranku nejake data, a Tvoje RPi sa bude do tej DB pavidelne pozerat.
Zobrazeno 4 zpráv z 4.