¿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é?
- reaccionar nativo hola mundo
- No se pueden agregar complementos usando `plugin phonegap add XXX`
- Cifrar con Node.js módulo Crypto y descifrar con Java (en la aplicación de Android)
- ¿Es posible usar WebSockets o similar con una aplicación nativa de Android?
- La aplicación NativeScript sampleGroceries no compila
- Excepción de SocketIO mientras usa el cliente Android para socketIO
- Dónde integrar la pasarela de pago PayU
- Conectar cliente android a sails.js
- ¿Cuál es la forma correcta de validar google concedido tokens OAuth en un servidor node.js?
- La conexión WebRTC falla en los datos celulares
- ¿No puede ejecutar node.js en el teléfono Android?
- Realizar solicitudes REST autorizadas (a través de facebook) a mi servidor node.js en una aplicación PhoneGap
- Descartar error de transporte al utilizar Nodejs + SocketIO
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.