flask - AirPlay arruina localhost
osx-yosemite (3)
Además, en Flask.run()
está el port
arg para que pueda especificar qué puerto desea usar, esto funciona para localhost.
Aquí está la documentación fuente .
Ejemplo:
from flask import Flask, Response
app = Flask(__name__)
@app.route(''/'')
def default():
return Response(status=200)
if __name__ == ''__main__'':
app.run(debug=True, port=12345)
Desde la última actualización de OSX (Yosemite), mi servidor localhost está lleno de mensajes de error de airplay (pero no lo estoy usando). Cada vez es lo mismo:
[31/Oct/2014 05:40:42] code 400, message Bad request version (''RTSP/1.0'')
[31/Oct/2014 05:40:42] "GET /info?txtAirPlay&txtRAOP RTSP/1.0" 400 -
Es molesto tener su servidor lleno de mensajes de error, así que si alguien tiene una pista para arreglar eso o para eliminar el juego aéreo, estaría muy agradecido :)
Creo que encontré la respuesta: en un foro de descubrimiento de Cisco , enumeraron una salida de nmap
que reveló los rangos de puertos discoveryd de Yosemite. Resulta que Apple está utilizando el puerto 5000:
PORT STATE SERVICE VERSION
3689/tcp open daap Apple iTunes DAAP 11.0.1d1
5000/tcp open rtsp Apple AirTunes rtspd 160.10 (Apple TV)
7000/tcp open http Apple AirPlay httpd
7100/tcp open http Apple AirPlay httpd
62078/tcp open tcpwrapped
5353/udp open mdns DNS-based service discovery
Como se puede imaginar, este es el puerto del Frasco predeterminado, simplemente cambie su puerto en ejecución a cualquier otro que no sea 5000, y este problema debería desaparecer. Esta extensión de Flask https://github.com/miguelgrinberg/Flask-Runner puede hacerte la vida mucho más fácil que codificar el puerto en el comando de ejecución.
Me encontré con este mismo problema, pero resultó que tenía un error en mi código. Estaba intentando conectarme a un servidor de Redis con el número de puerto incorrecto y, de algún modo, apareció el error de Airplay.
No estoy seguro de si esto soluciona su problema, pero puede ayudar a otra persona que tenga el mismo problema que yo.