Server en client

CrowlServerClient- en CrowlServer-classes

  1. Asynchronous Requests Handling: De klassen maken gebruik van JavaScript Promises om asynchrone verzoeken te verwerken. Dit betekent dat je de gebruikersinterface niet blokkeert terwijl de data wordt opgehaald, wat leidt tot een betere gebruikerservaring.
  2. Error Handling: Foutafhandeling is geïntegreerd, zodat fouten duidelijk worden gemeld en afgehandeld. Dit helpt bij het bouwen van robuuste applicaties waarin fouten effectief worden gemanaged.
  3. Flexibiliteit in Data Response Types: Ondersteuning voor verschillende antwoordtypes zoals JSON, tekst en blob biedt flexibiliteit om verschillende soorten data te hanteren die je van de server kunt ontvangen.
  4. Modulariteit en Herbruikbaarheid: Door de logica van het beheer van web worker communicatie en de netwerkverzoeken in aparte klassen te scheiden, bevordert dit modulair en herbruikbaar codeontwerp.
  5. Veiligheid: Door het gebruik van web workers worden data-verzoeken asynchroon en gescheiden van de hoofd-thread uitgevoerd, wat de veiligheid en prestaties van de applicatie kan verbeteren.

Gebruik van de Classes

De CrowlServerClient-klasse wordt gebruikt om verzoeken naar de server te sturen via een web worker. In de web worker regelt de CrowlServer-class  de communicatie met server side-scripts (PHP...). 

Implementatiestappen:

  • Initialiseer CrowlServerClient met het pad naar de worker script.
  • Roep de sendRequest-methode aan om GET- of POST-verzoeken te versturen.
  • Initialiseer CrowlServer in het workerscript. Roep de juiste methodes (get of post) aan afhankelijk van het verzoektype.

Mogelijkheden

  1. GET-verzoeken: Ophalen van data zonder extra parameters in de body te sturen.
  2. POST-verzoeken: Versturen van data naar de server, meestal voor het aanmaken of wijzigen van resources.
  3. Ondersteuning van verschillende response-types: Kan data verwerken in formaten zoals JSON, platte tekst, of blob.
  4. Geavanceerde foutafhandeling: Geeft gedetailleerde foutinformatie terug en laat toe om op een gecentraliseerde manier fouten af te handelen.

Voorbeeldcode

Hier is een voorbeeld van hoe je deze classes in een JavaScript-project kunt gebruiken:

Deze voorbeelden demonstreren het instellen van de basis URL, het specificeren van het verzoektype, en het versturen van de verzoeken via de client. Vervolgens worden de verzoeken asynchroon afgehandeld door de worker, die de CrowlServer klasse gebruikt om de daadwerkelijke netwerkverzoeken te doen.

// initialiseer de client met het pad naar de worker
const client = new CrowlServerClient('path/to/crowl.server.js');

// Voorbeeld van een GET-verzoek
client.sendRequest({ baseURL: 'https://api.example.com' }, { type: 'GET', endpoint: '/data' })
    .then(data => console.log('Data received:', data))
    .catch(error => console.error('Error:', error));

// Voorbeeld van een POST-verzoek
client.sendRequest({ baseURL: 'https://api.example.com' }, {
    type: 'POST',
    endpoint: '/submit',
    data: { key: 'value' },
    responseType: 'json'
})
.then(data => console.log('Data received:', data))
.catch(error => console.error('Error:', error));

Een eenvoudiger manier om GET- en POST-verzoeken af te handelen is via de get- en post-methode. Deze methodes functioneren in grote lijnen zoals een GET en POST in jquery. 

        myclient.get('url.php?text=https://www.lune.beauty&size=3000&color=324959', 'blob', function(data, error) {
            if (error) {
                console.log(error);
            } else {
                console.log(data);
            }
        });

        var d = {
            name: "kris",
            surname: "Merckx"
        };
        myclient.post('posttest.php', d, 'json', function(data, error) {
            if (error) {
                console.log(error);
            } else {
                console.log(data);
            }
        });
Volgende pagina