Expose websocket with traefik

I have two services in Kubernetes (k3s) one is backend and another is frontend and I need the transfer data from backend to fronted through websocket. So on backend I have (python):

import websockets
...
start_server = websockets.serve(server, "0.0.0.0", 8001)
...

On front I have (html):

...
var ws = new WebSocket('ws://localhost:8001');
...

I have Ingress Controller (traefic) that routes traffic to cluster:

apiVersion: networking.k8s.io/v1 
kind: Ingress
metadata:
  name: traefik-ingress
  namespace: my-namespace
  annotations:
    kubernetes.io/ingress.class: traefik
    ingress.kubernetes.io/ssl-redirect: "false"
spec:
  rules:
    - host: my-frontend
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: frontend-service
              port:
                number: 8000
    - host: localhost
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: app-service
              port:
                number: 8001

My forntend is reachable from dns my-frontend but websocket connection can not be established.
Allthough when I pod forward from my app service it works:

kubectl -n my-namespace port-forward svc/app-service 8001:8001

So how to expose port for websocket with traefik?