Demonstrační aplikace klient / server s použitím technologie WebSocket v prostředí PHP.
- server.bat
- - Windows script pro rychlé spuštění serveru na lokálním počítači s nasloucháním na daném portu.
- server.php
- - Soubor s hlavním serverem, který je spouštěn v režimu příkazového řádku.
- client.php
- - Soubor s jednoduchou klientskou částí pro zasílání zpráv na server.
Hlavní server je spouštěn přes příkazový řádek pomocí příkazu "php -f {cesta_k_souboru}/server.php" viz. "server.bat".
V běžném případe napíše CMD při použití příkazu "php" chybu, že příkaz neexistuje.
Tento problém je potřeba vyřešit namapováním nové proměnné:
- Je potřeba mít na počítači nainstalované prostředí PHP
- Nainstalujeme užitečný balíček komponent XAMPP (Zde ke stažení)
- Klíčové soubory PHP se nachází v domovském adresáři XAMPP ve složce "php"
- Provedeme namapování v systému Windows:
- Tento počítač -> Vlastnosti
- Upřesnit nastavení systému -> Proměnné prostředí
- Systémové proměnné -> Path -> Nový
- Hodnota proměnné: "{cesta_k_adresáři_php}"
- Provedeme kontrolu namapování v CMD pomocí příkazu: "php -v"
- Pokusíme se opět spustit server
Při opětovném pokusu o spuštění serveru se pravděpodobně objeví chyba, že Socket nebylo možné vytvořit.
Tento problém způsobuje fakt, že je ve výchozím PHP nastavení WebSocket bráno jako rozšíření, které je potřeba povolit:
- Přejdeme do domovského adresáře PHP
- Otevřeme soubor "php.ini"
- Najdeme řádek: ";extension=sockets"
- Odkomentujeme řádek smazáním ";"
- Restartujeme Apache v ovládacím panelu XAMPP
- Pokusíme se opět spustit server
Vytvoření koncového bodu by mělo proběhnout úspěšné a server by měl naslouchat novým připojením na portu 20205.
Pokud by se objeví další problém, že je daný port již využíván, je potřeba jej změnit v souboru "server.php".
Klietským modulem je soubor: "client.php". Pro jeho spuštění využijeme balíček XAMPP, který má ve svém domovském adresáři složku "htdocs", do které stačí soubor "client.php" přesunout. Do běžného webového prohlížeče poté stačí zadat adresu: http://localhost/client.php a komunikace mezi klientem a serverem může začít!
Aktivní server vždy jako první čeká na nové připojení klienta. Samovolně v základu nikomu nic nerozesílá ani neprovádí žádné další aktivity na pozadí. Klient navazuje spojení se serverem v okamžiku, kdy spustíme / navštívíme adresu http://localhost/client.php. Klient začíná komunikaci vždy jako první. Odešle zprávu na server a poté čeká na jeho odpověď. V případě, že je k serveru připojeno více klientů a všichni čekají na odpověď, obsluhuje jejich požadavky server postupně podle vlastní fronty čekatelů.