¿Dos servidores node.js?

Quiero ejecutar dos httpservers node.js en diferentes puertos:

var http = require('http'); var dbserver = http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write('<html><body><h2 align=center>TEST index.html.</h2></body></html>'); res.end(); }); dbserver.listen(8888); var s = http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.write('hello world'); res.end(); }); s.listen(8080); 

Quiero hacer la aplicación de Android que se conectará a mi servidor Node.js en el puerto 8888 en AppFog hosting, enviar un mensaje al servidor y recibir una respuesta de él. Y si abro mi servidor del browser consigo apenas una página html simple. Pero mi código no funciona. ¿Por qué?

En AppFog, puede ver documentación para ejecutar aplicaciones de nodo aquí: http://docs.appfog.com/frameworks/node

Una pieza importante es cómo determinar a qué puerto debe enlazar. En su ejemplo de código, tiene s.listen (8080); pero el puerto para especificar está en realidad en el env var:

 s.listen(process.env.VCAP_APP_PORT || 8080); 

AppFog no admite actualmente tener dos puertos abiertos para la misma aplicación, por lo que tendrá que dividir esto en dos aplicaciones y tener la segunda similarmente enlazada a la env var:

 dbserver.listen(process.env.VCAP_APP_PORT || 8888); 

AppFog tendrá compatibilidad con WebSocket dentro de unos meses, pero no está disponible en la actualidad.

Bueno, bueno, bueno, he tenido una respuesta de correo electrónico de AppFog apoyo que suena como esto:

// ———————————————— ———————-

Joe, Sep 19 12:30 (PDT):

¡Hola!

Desafortunadamente, solo se admite tráfico HTTP en AppFog, por lo que los websockets y el tráfico UDP no funcionarán. El soporte de Websocket está en nuestra hoja de ruta, sin embargo, ¡por favor, permanezca atento!

Joe AppFog Soporte

// ———————————————— ———————

Así que el problemm no estaba en Node.js, y no en mi código, sino en AppFog. ¡Muchas gracias a todos por su ayuda!

Sin duda, puede ejecutar dos servidores diferentes en dos puertos diferentes en una aplicación de un solo nodo, pero si desea que su código del lado del cliente tenga acceso a ambos, es muy probable que se ejecute en los mismos problemas de origen (por ejemplo, un navegador el código de ejecución cargado desde un servidor no será, en general, capaz de hacer una solicitud AJAX al otro servidor, ya que dos puertos diferentes en la misma URL se consideran dos orígenes diferentes). Su capacidad de conexión entre servidores se limitará a solicitar scripts (que incluye solicitudes JSONP) y conexiones Websocket (aunque recuerde que si está utilizando socket.io y el cliente no admite Websockets, los métodos de transporte de fallback que socket . Los usos de .io no necesariamente trabajarán con origen cruzado.

  • No se pudo iniciar './qemu/windows-x86_64/qemu-system-i386.exe': No existe ningún archivo o directorio de este tipo
  • Android objetivo se cambia después de hacer cordova plataforma de actualización
  • Comunicarse con socket.io desde android
  • Error: Error de gancho con el código de error 1:
  • ¿Cómo dar acceso a los datos de CouchDB a los visitantes de un sitio web móvil?
  • Cordova Android Upgrade - No se puede encontrar el módulo 'lodash / object / assign' Error
  • Envío de solicitud de publicación HTTP con Android
  • Intentando ejecutar Phonegap en Ubuntu 13.04
  • Enviar JSONObject desde la aplicación android a node.js sobre http?
  • Instalando PhoneGap, ejecutando el comando de error 'ant'
  • Cómo usar NodeJS en Android usando J2V8
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.