Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

330
Vistas
Matraz SocketIO + Apache

Creé con éxito una aplicación Flask-SocketIO que se ejecuta en el servidor eventlet. Luego moví la página web al servidor web Apache. Acabo de eliminar la parte de myapp.py donde se representó la plantilla y coloqué el archivo index.html en el directorio /www/html de Apache. Aquí está el código:

miaplicacion.py:

 from flask import Flask from flask_socketio import SocketIO, emit import eventlet eventlet.monkey_patch() app = Flask(__name__) app.config['SECRET_KEY'] = 'secret!' io = SocketIO(app, cors_allowed_origins="http://localhost") clients = [] @io.on('connected') def connected(): clients.append(request.sid) print("client connected") print(request.sid) @io.on('disconnect') def disconnect(): clients.remove(request.sid) print("client disconnected") print(request.sid) if __name__ == '__main__': io.run(app, host='localhost', port=5000)

índice.html:

 <html> <br> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js" integrity="sha256-yr4fRk/GU1ehYJPAs8P4JlTgu0Hdsp4ZKrx8bDEDC3I=" crossorigin="anonymous"></script> </head> <br> <body> <h2>HELLO</h2> <script> $("document").ready(function(){ var socket = io.connect('http://localhost:5000'); socket.on('connect', function() { socket.emit('connected'); }); }); </script> </body> </html>

Todo funciona bien. Pero luego leí la respuesta de Miguel a esta pregunta: Usar eventlet para administrar socketio en Flask , que dice que usar el servidor web de Apache no es una buena idea. No entiendo muy bien cómo funcionan los servidores web. ¿Lo que hice fue algo incorrecto? La respuesta también dice que Apache no admite sockets web. Entonces, ¿cómo es que mi aplicación funciona? Estaré muy agradecido si alguien puede explicarme este asunto.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Su ejemplo funciona porque solo está sirviendo su archivo HTML a través de Apache, el servidor Flask-SocketIO todavía se ejecuta solo en el puerto 5000.

Lo que actualmente es difícil/imposible de hacer es hacer que las conexiones Socket.IO pasen a través de Apache y luego al servidor, que es lo que prefiere la mayoría de la gente.

Realmente está ejecutando dos servidores web, Apache en los puertos 80/443 para su HTML y Flask-SocketIO en el puerto 5000 para su lógica de Python.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda