Zelfstandige socket applicatie
Het is natuurlijk niet handig als er een mens op de server de command prompt moet opstarten en het PHP programma open moet laten staan in die console.
Ik vraag me dus af of het haalbaar is om dit door een systeem zelfstandig te laten doen? Dus als de applicatie wordt gebruikt (dat kan dus de hele dag door) dan moet het PHP programma op de server draaien.
Ik hoop dat jullie weten wat ik bedoel?
Ik snap wat je bedoeld & ik neig toch echt naar een nee. Als je zoiets wilt gaan doen via een bash, cronjob, C#, C+, C++ is de kans te groot dat je zulke maffe stunts uit moet gaan halen dat je besturingssysteem instabiel wordt.
Dat is blijkbaar ideaal voor real-time applicaties die gebruik maken van sockets. Ik vind nodeJs alleen wel heel rommelig. Dat komt waarschijnlijk omdat het niet standaard een webserver is zoals apache, als je bijvoorbeeld een http response wil maken waarmee je een webpagina wil laten zien, moet je zelf een server maken met de libraries die bij NodeJs zitten.
Verder vraag ik me af of je ook bij NodeJs gebruik moet maken van een daemon of iets dergelijks, het gaat me erom of je bij het gebruik van NodeJs een systeem helemaal zelfstandig kunt maken, dus als de applicatie helemaal niet gebruikt wordt, en dan inneens wel, dat er vanzelf iets opstart.
Wat ik wil is:
- Pagina's met apache en PHP laten zien. Dus de normale manier van een site.
- Gebruik maken van NodeJs voor de socket verbinding, maar alleen als dit echt voordelen oplevert (in snelheid in elk geval wel).
- Alleen NodeJs gebruiken voor de real-time verbinding, dus webpagina's eromheen zonder NodeJs laden, zodat daat PHP voor gebruikt kan worden.
Ik moet me dus wel gaan verdiepen in NodeJs.
Heeft iemand ervaring, of weet iemand een goede tutorial?
Waar ik ook vooral mee zit, zijn de ports. Zoals bijvoorbeeld poort 80. Ik begrijp niet echt wat poorten zijn.
Gewijzigd op 25/02/2015 16:02:42 door Mark Hogeveen
16, telnet
21 & 22, ssh
25, smtp
443, https.
3306, sql server
80 ,8080 http apache
Gewijzigd op 25/02/2015 19:44:06 door Yoop Overmaat
Yoop Overmaat op 25/02/2015 19:42:29:16, telnet telnet port 23
21 & 22, ssh ftp port 20 & 21 en ssh port 22
Gewijzigd op 25/02/2015 20:00:16 door - SanThe -
Harry hogeveen op 20/02/2015 12:43:11:
Nee, hoeft niet. Je kan het php script opstarten, unattached laten draaien en uitloggen. Zoek even naar: nohup command &Als je een applicatie maakt met WebSockets, dan moet je op de server de command prompt open laten staan omdat er eigenlijk een programma continu aan het draaien is.
Voorbeeld: nohup /path/to/your/phpscript.sh > /var/log/script.log 2>&1 &
Voor wat betreft node.js, ik heb een pilot gedaan met node.js en beeindigd. Werkt niet super, is een soort van java virtual machine, ik had foutmeldingen op functies die herhaald werden (upload to azure) en het was traag. Ben overgestapt op Python dat nu foutloos draait.
Gewijzigd op 25/02/2015 20:32:19 door Aad B
Ik zie ook dat NodeJS bijna niet te combineren valt met PHP, terwijl ik een heel systeem heb gemaakt in PHP dat ik vaak opnieuw gebruik. Zoals het routing systeem, werken met de database, het filesysteem, formulieren verwerken. Ik zit er niet op te wachten dat ik een volledige PHP bibliotheek moet gaan overschrijven naar NodeJs.
Ik heb weer vanalles geprobeerd, maar ik krijg steeds dit probleem: socket already in use [98]
En in het F12 ontwikkelingsprogramma van de browser staat 'ws://localhost:8080/server.php' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
Welk poortnummer ik ook neem.
Quote:
Als je een applicatie maakt met WebSockets, dan moet je op de server de command prompt open laten staan omdat er eigenlijk een programma continu aan het draaien is. Dit PHP programma moet luisteren naar de openstaande verbindingen.
Als jij ergens naartoe belt, en aan de andere kant zit er niemand aan het toestel (deze persoon neemt ook alleen op als 'ie verwacht dat 'ie gebeld wordt, anders ligt het toestel uit het stopcontact :)), dan wordt er simpelweg niet opgenomen :).
Om de analogie voort te zetten: wat jij wilt is een soort van belcentrale: je belt met een vast nummer en wordt dan doorverbonden naar een ander toestel (een andere poort uit een pool), en dan is de belcentrale weer beschikbaar om nieuwe telefoontjes aan te nemen.
"Ello? Operator?"
EDIT: Dit is precies wat een concurrent daemon doet - zie het eerder gelinkte WIKI artikel...
Gewijzigd op 01/03/2015 15:53:03 door Thomas van den Heuvel
Er is ook heel veel te vinden over: socket already in use.
Is de aard van de te maken applicatie zodanig dat hier (web)sockets voor gebruikt moeten worden? Je moet dan toch zelf een protocol gaan schrijven of van een bestaand protocol gebruik gaan maken?
Te meer omdat hij zelf aangaf dat hij niet precies wist wat poorten zijn (terwijl je een applicatie met websockets wilt gaan maken?) vraag ik mij af of hij de oplossing in de goede richting aan het zoeken is.
Ik wil een chat applicatie maken.
http://tutorialzine.com/2014/03/nodejs-private-webchat/
https://github.com/jdutheil/nodePHP
Gewijzigd op 01/03/2015 19:28:56 door Bart V B