Sto lavorando a un sito Web che visualizza alcuni dati dal DB che cambiano frequentemente (stato di una coda e conversazione in chat). La mia attuale configurazione è Apache/PHP/MySQL. Ovviamente vorrei evitare di eseguire il polling del server ogni x secondi poiché questo non si adatta bene. Mi piacerebbe fare un reverse polling ajax lungo, tuttavia, ho letto che Apache non funziona bene con questo poiché esaurisce rapidamente i thread di lavoro. Esistono molti altri server Web che risolvono questo problema: nginx, tornado, ecc. Tuttavia, il mio problema è che PHP è l'UNICO linguaggio di scripting lato server che conosco. Inoltre ho già scritto alcuni script PHP, quindi mi piacerebbe tenerli se posso. Sto bene con il cambio server fino a quando posso ancora usare PHP.Il php è scalabile con polling lungo ajax inverso?
Ma dopo aver fatto qualche ricerca in più, ho letto che le persone dicono che PHP (PHP-FPM?) Crea anche un processo per ogni richiesta fatta, il che significa che se avrò centinaia/migliaia di connessioni aperte, ci saranno centinaia/migliaia di processi, che saranno anch'essi un problema.
Posso concludere che non esistono buoni modi scalabili per realizzare siti Web di polling lunghi utilizzando PHP? Dovrei abbandonare PHP e imparare un altro linguaggio di scripting del server? Posso continuare a sviluppare lunghi sondaggi usando la mia attuale configurazione (Apache/PHP) per ora, ma non voglio che la scelta del linguaggio di scripting ponga limiti alla scalabilità del mio sistema durante la distribuzione. Quindi cosa dovrei fare? Non ho molta esperienza con la programmazione web, quindi se qualche guru là fuori può darmi dei consigli, lo apprezzerei! Grazie!
Non fatto questo, ma usare le prese js potrebbe essere un'opzione? forse usando anche node.js. Il supporto nativo per i web-socket nei browser è iproving ma immagino che il plugin jQuery gestisca quello? –
Non sto davvero considerando websocket poiché non è supportato su tutti i principali browser. In realtà ho esaminato node.js, ma da quello che ho sentito è ancora relativamente nuovo, quindi il supporto del framework è più limitato. Attualmente sto considerando Django, il che significa che devo prendere su Python. Ho sentito cose buone sul framework, ma preferirei rimanere con php, se c'è un modo per aggirare il successo della performance. – pinghsien422
sicuramente riconsidererei node.js - una semplice richiesta ajax alla porta del server su cui node.js è in esecuzione potrebbe essere solo il trucco. –