Zelfstandige socket applicatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark Hogeveen

Mark Hogeveen

20/02/2015 12:43:11
Quote Anchor link
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.
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?
 
PHP hulp

PHP hulp

21/11/2024 16:44:41
 
Yoop Overmaat

Yoop Overmaat

20/02/2015 13:13:15
Quote Anchor link
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.
 
Thomas van den Heuvel

Thomas van den Heuvel

20/02/2015 13:53:37
 
Mark Hogeveen

Mark Hogeveen

25/02/2015 16:01:23
Quote Anchor link
Ik ben nu terecht gekomen bij NodeJS.
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
 
Yoop Overmaat

Yoop Overmaat

25/02/2015 19:42:29
Quote Anchor link
Ports zijn de toegangspoorten naar een server;
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
 
- SanThe -

- SanThe -

25/02/2015 19:59:29
Quote Anchor link
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 -
 
Aad B

Aad B

25/02/2015 20:23:45
Quote Anchor link
Harry hogeveen op 20/02/2015 12:43:11:
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.
Nee, hoeft niet. Je kan het php script opstarten, unattached laten draaien en uitloggen. Zoek even naar: nohup command &
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
 
Mark Hogeveen

Mark Hogeveen

25/02/2015 21:09:35
Quote Anchor link
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.
 
Mark Hogeveen

Mark Hogeveen

01/03/2015 13:11:28
Quote Anchor link
Ik doe nu dus maar php sockets..

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.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/03/2015 15:29:06
Quote Anchor link
Uit je oorspronkelijke bericht:
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
 
John D

John D

01/03/2015 15:42:17
Quote Anchor link
Je zal eerst deze op moeten lossen: socket already in use. Welke poort(en) gebruik je?
Er is ook heel veel te vinden over: socket already in use.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/03/2015 16:05:07
Quote Anchor link
Het helpt misschien ook als de topicstarter aangeeft wat voor applicatie hij wil maken. Wellicht volstaat een webservice ook? In wezen luistert je webserver ook continu op poort 80 en reageert ook op "commando's".

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.
 
Mark Hogeveen

Mark Hogeveen

01/03/2015 17:28:06
Quote Anchor link
Ik wil een chat applicatie maken.
 
Bart V B

Bart V B

01/03/2015 19:21:51
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.