Portál AbcLinuxu, 10. května 2025 19:31

Dotaz: Pouze jedno připojení k webu.

11.6.2014 15:02 coolizard
Pouze jedno připojení k webu.
Přečteno: 399×
Odpovědět | Admin
Ahoj,

na Raspberry Pi mám vytvořené webové rozhraní pro ovládání hardwaru připojeného ke GPIO pinům. Problém je v tom, že na hardwaru nemůže pracovat více osob současně, takže bych potřeboval vytvořit omezení, díky kterému by mohlo k webovému rozhraní existovat vždy jen jedno připojení.

Webové rozhraní využívá klasicky PHP, JavaScript atp. Celé to běží na Raspbianu a serveru Cherokee.

Nevíte někdo jak na to? Nějak mě nasměrovat na správnou cestu :).

Děkuji.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.6.2014 15:08 1john2 | skóre: 35 | blog: jo12hn | zlín, brno
Rozbalit Rozbalit vše Re: Pouze jedno připojení k webu.
Odpovědět | | Sbalit | Link | Blokovat | Admin
Uplne jednoduše me napadá nějaký lck soubor na serveru.

První klient se připojí a zamkne. Každý další zkontroluje existenci lck a zobrazí chybu.

Plus možná nějaký timeout/timestamp pro případnou ztrátu spojeni
11.6.2014 17:38 coolizard
Rozbalit Rozbalit vše Re: Pouze jedno připojení k webu.
Přičemž timeout by byl poměrně malý a prodlužoval by se každým provedením PHP skriptu (tedy kliknutím na tlačítko webového rozhraní). Do Lock souboru by tedy stačilo ukládat jenom aktuální datum a čas -> následně porovnávat v každém provedení skriptu a buď prodloužit, nebo zrušit :). Že mě to nenapadlo?

Díky.
16.6.2014 06:21 Matlák
Rozbalit Rozbalit vše Re: Pouze jedno připojení k webu.
Ono záleží na tom jak je ten hardware citlivý. Možná by pro "atomizaci" operací nad tím stačilo, aby si každý připojený klient musel nejdříve načíst aktuální stav zařízení, než provede operaci.
Josef Kufner avatar 16.6.2014 12:14 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Pouze jedno připojení k webu.
Odpovědět | | Sbalit | Link | Blokovat | Admin
A jsi si jist, že nestačí omezit přístup k hardwaru na druhé straně od web serveru?

Tak jako tak se ti bude hodit flock().
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.