Code: Select all
@app.get("/stream")
async def stream_data():
return StreamingResponse(generate_sensor_data(), media_type="text/event-stream")
< /code>
Verifizierungsservice: < /p>
import requests
print("Connecting ...")
response = requests.get("http://factory.localhost/stream", stream=True)
print(response.status_code, response.text)
< /code>
Docker-Compose: < /p>
services:
factory-service:
build:
context: ./factory
dockerfile: Dockerfile
container_name: factory_service
ports:
- "8001:8001"
labels:
- "traefik.enable=true"
- "traefik.http.routers.factory.rule=Host(`factory.localhost`)"
- "traefik.http.services.factory.loadbalancer.server.port=8001"
- "traefik.http.middlewares.sse.headers.customResponseHeaders.Access-Control-Allow-Origin=*"
- "traefik.http.middlewares.sse.headers.customResponseHeaders.Cache-Control=no-cache"
- "traefik.http.middlewares.sse.headers.customResponseHeaders.Connection=keep-alive"
- "traefik.http.routers.factory.middlewares=sse"
- "traefik.http.routers.factory.entrypoints=web"
networks:
- app-network
verification-service:
build:
context: ./verification
dockerfile: Dockerfile
container_name: verification_service
depends_on:
factory-service:
condition: service_started
networks:
- app-network
traefik:
image: traefik:v3.3
command:
- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker"
- "--providers.docker.exposedbydefault=false"
- "--entryPoints.web.address=:80"
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- app-network
networks:
app-network:
driver: bridge
Traefik: HTTPS-Zugriff zwischen Anwendungen funktioniert nicht
https>