socket node integrar espaƱol con php apache node.js server-side serverside-javascript

integrar - php vs node js performance



node.js corriendo junto con Apache PHP? (5)

¿Qué hay de usar un archivo de socket como lo hizo pedro con ngnx? http://nodetuts.com/tutorials/25-nginx-and-nodejs.html

Estoy tratando de poner mi cabeza en node.js ...

Estoy muy contento con mi configuración de LAMP ya que actualmente cumple mis requisitos. Aunque quiero agregar algunas características en tiempo real a mi aplicación PHP. Como mostrar todos los usuarios que actualmente están conectados a mi sitio y posibles funciones de chat.

No quiero reemplazar mi backend PHP, pero sí quiero soluciones escalables en tiempo real.

1. ¿Puedo lanzar node.js en la mezcla para satisfacer mis necesidades sin reconstruir toda la secuencia de comandos del lado del servidor de la aplicación?

2. ¿Qué mejor podría node.js servir mis funciones de "chat" y "actualmente conectado"?

¡Genial escuchar tus puntos de vista!

W.


Estoy ejecutando un servidor wss (secure websocket) junto con la configuración de LAMP.

Node.js se puede ejecutar fácilmente junto con cualquier otro servidor web (apache) que desee. En el ejemplo de @KitCarrau, deja que el nodo se ejecute en el puerto 8084, que es donde se está ejecutando y escuchando, no 80 o 443, etc. (generalmente, los usa apache). Pero aún puede usar el mismo puerto para servir también http / https (en mi caso solo indicando cierta información conf y general de que el servicio está activo).

Comenzar desde la consola no es la mejor manera (de forma remota, el nodo se detiene al cerrar la consola). Recomiendo echar un vistazo a Ejecución de nodo como servicio

Fácil de seguir el registro en tiempo real (inicie sesión en console.log ("hola") en su aplicación) con:

tail -f /var/.../SocketServer.log

Script de ejemplo (node-server.conf):

author .... description "node.js server" # used to be: start on startup # until we found some mounts weren''t ready yet while booting: start on started mountall stop on shutdown # Automatically Respawn: respawn respawn limit 99 5 # Max open files are @ 1024 by default. Bit few. limit nofile 32768 32768 script # Not sure why $HOME is needed, but we found that it is: export HOME="/root" exec node /var/.../SocketServer.js >> /var/www/node/.../SocketServer.log 2>&1 end script post-start script # Optionally put a script here that will notifiy you node has (re)started # /root/bin/hoptoad.sh "node.js has started!" echo "/n*********/nServer started/n$(date)/n*********" >> /var/.../SocketServer.log end script



Sospecho que el chat y la lista de usuarios registrados funcionarían a través de Ajax.

La parte de chat sería bastante fácil de programar en Node.js, use uno de los módulos de mysql para que Nodo se conecte a su base de datos existente y consulte la información de inicio de sesión y demás y luego realice toda la conversación real a través de Node.js, lo recomiendo Socket.io un vistazo a Socket.io ya que hace que la comunicación entre Browser / Node.js sea realmente trivial, esto debería permitirle concentrarse en la lógica del chat real.

Además, puedes echar un vistazo a la demo de chat "oficial" de Node.js, para obtener algo de inspiración.

En cuanto a la parte actualmente en línea, esto nunca es fácil de implementar, ya que todo lo que puedes hacer es mostrar algo como "5 usuarios activos en los últimos X minutos".

Por supuesto, puede agregar fácilmente algunos Ajax que consulten el servidor de chat y mostrar la lista de usuarios a partir de esa en la página de inicio.

O te vuelves completamente loco y estableces una conexión Socket.io para cada visitante y lo monitoreas de esta manera, aunque es cuestionable si vale la pena el esfuerzo.


Sugiero que uses Socket.io junto con node.js. Instale y descargue las librerías desde http://socket.io/ . Puede ejecutarlo junto a su servidor Apache sin problemas.

Primero crea un servidor de nodos:

var http = require(''http'') , url = require(''url'') , fs = require(''fs'') , io = require(''../'')//path to your socket.io lib , sys = require(process.binding(''natives'').util ? ''util'' : ''sys'') , server; server = http.createServer(function(req, res){ var path = url.parse(req.url).pathname; }), server.listen(8084);//This could be almost any port number

Segundo, ejecute su servidor desde la línea de comando usando:

node /path/to/your/server.js

En tercer lugar, conéctese al socket utilizando js del lado del cliente:

var socket = new io.Socket(null, {port: 8084, rememberTransport: false}); socket.connect();

Deberá incluir también el lado del cliente de socket.io lib.

Enviar datos del lado del cliente al servidor de nodo usando:

socket.send({data:data});

Su servidor.js también debería tener funciones para procesar solicitudes:

io.on(''connection'', function(client){ //action when client connets client.on(''message'', function(message){ //action when client sends msg }); client.on(''disconnect'', function(){ //action when client disconnects }); });

Hay dos formas principales de enviar datos del servidor al cliente:

client.send({ data: data});//sends it back to the client making the request

y

client.broadcast({ data: data});//sends it too every client connected to the server