/WebSockets

Demonstrační aplikace klient / server s použitím technologie WebSocket v prostředí PHP.

Primary LanguagePHP

WebSockets

Demonstrační aplikace klient / server s použitím technologie WebSocket v prostředí PHP.

Hlavní součásti

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.

Server

Namapování PHP

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é:

  1. Je potřeba mít na počítači nainstalované prostředí PHP
  2. Nainstalujeme užitečný balíček komponent XAMPP (Zde ke stažení)
  3. Klíčové soubory PHP se nachází v domovském adresáři XAMPP ve složce "php"
  4. 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}"
  5. Provedeme kontrolu namapování v CMD pomocí příkazu: "php -v"
  6. Pokusíme se opět spustit server

XAMPP a nastavení PHP

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:

  1. Přejdeme do domovského adresáře PHP
  2. Otevřeme soubor "php.ini"
  3. Najdeme řádek: ";extension=sockets"
  4. Odkomentujeme řádek smazáním ";"
  5. Restartujeme Apache v ovládacím panelu XAMPP
  6. 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".

Klient

Spuštění klienta

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!

Princip komunikace

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ů.