2013-05-20 13 views
9

Svilupperemo il server di riposo per la nostra applicazione (e tutta la logica è su client javascript). Quindi abbiamo pensato di utilizzare Phalcon php, ma abbiamo anche bisogno di creare un sistema di chat in tempo reale, che è molto più facile da fare usando node.js. Questo ci ha fatto pensare all'utilizzo di node.js invece di phalconPhalcon php vs node.js

Sfortunatamente, non siamo esperti in node.js, amiamo phalcon per le sue prestazioni e la bellezza interiore.

La cosa è, qualcuno ha confrontato le prestazioni di phalcon e node.js? Può essere meglio usare node.js solo per lunghe richieste di chat di polling, ma non mi piace quando il progetto è connesso con strumenti così diversi.

+1

Bene, questa potrebbe essere una risposta tardiva, ma forse qualcun altro lo troverà utile: http: //www.techempower.com/benchmarks/#section=data-r6 – dompie

risposta

3

Si sta tentando di confrontare due cose diverse IMO.

node.js ha un sacco di potenza e flessibilità, ma anche Phalcon. Se si desidera creare un'applicazione di chat con Phalcon, sarà necessario implementare una sorta di meccanismo di polling nel browser che aggiornerà la finestra di chat ogni X secondi. Ottenere/Inserire i dati dal database sarà il lavoro di Phalcon. Javascript verrà utilizzato per eseguire il polling, ad esempio, aggiornare la pagina della chat ogni X secondi.

Il problema con questo approccio è che potresti colpire il tuo server web ogni X secondi da ogni client che ha l'applicazione di chat aperta - e quindi aggiornare il contenuto della chat, anche quando non ci sono messaggi. Questo può diventare molto intenso molto rapidamente.

node.js ha la capacità di inviare messaggi istantaneamente ai client sottoscritti. Le prese sul web possono fare la stessa cosa che io credo.

Controllare questo video out, che vi darà un'idea di come questo può essere raggiunto facilmente:

https://www.youtube.com/watch?v=lW1vsKMUaKg

L'idea è quella di utilizzare tecnologie che non appesantire il vostro hardware, piuttosto collaborare con esso. Avere un sistema di notifica "subscription" (come socket o node.js) riduce il carico sull'applicazione poiché solo i client sottoscritti ricevono i nuovi messaggi e non è necessario alcun aggiornamento completo dai client di chat.

Phalcon è ottimo per il back-end con la sua velocità e può essere utilizzato per costruire il messaggio che a sua volta verrà passato al livello di trasporto e inviato al client. A seconda di come vuoi implementarlo, ci sono molte opzioni in giro e puoi facilmente combinare le tecnologie :)

+1

Dovrebbe essere possibile scrivere un demone PHP che chiama in Phalcon che può supportare anche socket. – CMCDragonkai

+0

Potrei aver frainteso la tua risposta, ma non vedo la relazione tra il polling AJAX vs web socket/tecniche di spinta server e PHP vs Node.js. Puoi eseguire il polling AJAX (normale o lungo) con PHP e Node.js, e puoi fare push server con PHP (usando Comet) e Node.js. Penso che ciò che deve essere sottolineato è solo il fatto che la forza di Node.js non è la prestazione grezza ma è la scalabilità, e la grande differenza è che Node.js è guidato da eventi e single-threaded – Rayjax

1

Il mio consiglio è di usare quello che già sapete, sperimentando con nodejs solo per l'applicazione di chat.
Principalmente perché hai detto che non hai esperienza con esso, quindi, poiché l'app di chat è qualcosa che molte persone hanno fatto, troverai molti esempi.

In questo modo imparerai molto dal nodo e potresti anche pensare di migrare da Phalcon se si adatta alle tue esigenze, ad esempio utilizzando le funzionalità offerte da expressjs.

Non sceglierei l'uno sull'altro in base alle prestazioni.

+0

Questo è vero, andando alla produzione con una brutta esperienza un po 'fuori di testa. Ma comporre php e node.js non è poi così bello, perché sono due server, dobbiamo pensare a condividere la sessione php con node.js ecc. –

+0

Non ho capito che la chat era parte dell'intero pensiero di esso come applicazione autonoma. Capisco le tue preoccupazioni, ma se l'applicazione di chat potrebbe comportarsi come un "editore di messaggi", allora non penso che sia un grosso problema. –

1

come ha detto @Nikolaos Dimopoulos, stai cercando di confrontare due cose diverse.

Ma questo è il mio consiglio, mentre si è esperti del framework PhalconPHP e si desidera trarre vantaggio dalla velocità e dalle prestazioni di Phalcon, è possibile implementare l'app Web in Phalcon FW e il sistema di chat nel nodo.JS come servizio.

Se l'applicazione Web "L'app Phalcon" deve inviare messaggi dal back-end, è possibile utilizzare la libreria http://elephant.io/ per questo, l'ho già fatto con il framework e il nodo Yii e sta funzionando perfettamente.