Een websocket connectie opzetten
Hoe het nu werkt:
Gebruiker opent op pagina 1 in een nieuw tab pagina 2. Wanneer er een actie wordt uitgevoerd op pagina 2 wordt dit in de database opgeslagen. Pagina 1 checkt elke paar seconde of er wat is veranderd in de database, zo ja, voer actie uit op pagina 1.
Hoe ik wil dat het werkt met een websocket:
Gebruiker opent op pagina 1 in een nieuw tab pagina 2 en wanneer er een actie wordt uitgevoerd, wordt dit met een websocket connectie doorgegeven en wordt een actie uitgevoerd op pagina 1.
Nu is de vraag, hoe start ik zo'n connectie? Ik maak gebruik van shared hosting en heb toegang tot de command line.
Ik heb deze pagina gevonden die ik wou gebruiken om eerst is te gaan testen: https://medium.com/@cn007b/super-simple-php-websocket-example-ea2cd5893575
Maar ik loop hier al vast. Wat voer ik bijvoorbeeld hier in? :
Het adres van de server? En welke poort gebruik ik dan?
Ook zie ik dat je de volgende command moet uitvoeren in de command line:
php -q websockets.php
Ik neem aan dat je hier het hele pad moet invoeren waarin het testbestand op de server staat?
Bij het gebruiken van websockets, moet je wel een websocket-service hebben draaien. Bijvoorbeeld met nodeJS.
Ad Fundum op 15/07/2021 14:12:01:
Zou chunked HTTP niet een simpeler alternatief zijn voor het probleem?
Zie bijvoorbeeld de oplossingen van SO.
Zie bijvoorbeeld de oplossingen van SO.
Hoe zou ik dat kunnen toepassen? Als ik de antwoorden lees wordt ik er niet veel wijzer van. De situatie is nu als volgt:
Een gebruiker kan bij een product op een knop klikken die een editor opent in een nieuw tabblad. De gebruiker kan daar zijn product bewerken en klikken op 'klaar' wanneer hij wilt afronden.
Zodra daarop geklikt wordt sluit het tabblad en moet pagina 1 verversen. Dat doe ik nu dus door elke paar seconden een ajax call uit te voeren.
- Ariën - op 15/07/2021 14:21:01:
Bij het gebruiken van websockets, moet je wel een websocket-service hebben draaien. Bijvoorbeeld met nodeJS.
Ik hoor net dat mijn shared hosting het sowieso niet toelaat dus helaas is het niet mogelijk.
Dan zou je een VPS moeten nemen.
Je kan ook werken met een nas en je webpagina doorsluizen naar jas. synology zou het kunnen. Staat op mijn lijstje om ook eens te proberen.