02-04-2012, 11:18 PM
Bien moins rapide même, le JS executé à l'aide de Node.JS selon les benchmarks va carrément bien plus vite que du PHP en CLI. De plus, le PHP comme le dit Maks est synchrone, or si plusieurs clients se connectent, PHP les bloque, il faudrait donc utiliser une extension permettant de multithreadé PHP, il n'est donc pas fait pour ça. Alors que le JS est lui fait pour ça, asynchrone et réellement fait pour être multithreadé.
Après je ne sais pas quoi dire de plus, c'est assez simple à comprendre. C'est la même architecture qu'un logiciel qui se connecte à un serveur. Le client s'y connecte à l'aide des sockets, et ils s'envoient mutuellement des sockets pour se dire ce qui se passe.
Concernant Node.JS en lui même et les websockets, tu as parlé d'Ajax et j'aimerais dire en quoi les websockets sont plus performantes. Une requête AJAX c'est une requête HTTP comprenant donc l'en-tête à envoyer, l'en-tête reçu et le contenu, or dans le cadre de petites informations ( donc de petit contenu ), les en-têtes HTTP sont majoritaire dans les échanges, les éviter économise beaucoup de bande passantes ( surtout qu'une requête HTTP passe par Apache, qui doit executer du PHP ... ). Les websockets sont un dérivé du protocole TCP mais utilisant une en-tête HTTP au départ, par la suite aucune en-tête n'est utilisé. C'est donc économe en bande passante, de plus, ça évite de passer par Apache ou d'executer un nouveau code à chaque fois puisque là le code du serveur est toujours en route en background sur le serveur. Cette solution est donc économe en bande passantes mais aussi en performances au niveau de l'execution du code.
Après je ne sais pas quoi dire de plus, c'est assez simple à comprendre. C'est la même architecture qu'un logiciel qui se connecte à un serveur. Le client s'y connecte à l'aide des sockets, et ils s'envoient mutuellement des sockets pour se dire ce qui se passe.
Concernant Node.JS en lui même et les websockets, tu as parlé d'Ajax et j'aimerais dire en quoi les websockets sont plus performantes. Une requête AJAX c'est une requête HTTP comprenant donc l'en-tête à envoyer, l'en-tête reçu et le contenu, or dans le cadre de petites informations ( donc de petit contenu ), les en-têtes HTTP sont majoritaire dans les échanges, les éviter économise beaucoup de bande passantes ( surtout qu'une requête HTTP passe par Apache, qui doit executer du PHP ... ). Les websockets sont un dérivé du protocole TCP mais utilisant une en-tête HTTP au départ, par la suite aucune en-tête n'est utilisé. C'est donc économe en bande passante, de plus, ça évite de passer par Apache ou d'executer un nouveau code à chaque fois puisque là le code du serveur est toujours en route en background sur le serveur. Cette solution est donc économe en bande passantes mais aussi en performances au niveau de l'execution du code.