2014-12-08 13 views

Odpowiedz

6

Websockets rozpoczynają swoje życie od uzgadniania uaktualnień HTTP. Po pomyślnym zakończeniu uzgadniania otrzymasz długo działające połączenie dwukierunkowe websocket.

Jeśli używasz Nginx jako serwera proxy dla websockets, możesz również użyć "X-Forwarded-For", ale tylko na handshake. Patrz na przykład this simple configuration:

# WebSocket Proxy 
# 
# Simple forwarding of unencrypted HTTP and WebSocket to a different host 
# (you can even use a different host instead of localhost:8080) 

server { 
    listen 80; 

    # host name to respond to 
    server_name ws.example.com; 

    location/{ 
     # switch off logging 
     access_log off; 

     # redirect all HTTP traffic to localhost:8080 
     proxy_pass http://localhost:8080; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header Host $host; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

     # WebSocket support (nginx 1.4) 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
    } 
} 

... a niektóre odniesienia na this page.

Skonfigurujesz to, co Nginx powinien wysyłać wraz z zapytaniem o aktualizację (informacje, których używasz do identyfikacji klienta) i będzie to zadanie serwera zaplecza, aby użyć informacji z uzgadniania w celu zidentyfikowania klienta, a następnie powiązania połączenia internetowego do twojego klienta. Na podstawie tego powiązania każda wiadomość przychodząca z tego połączenia websocket należy do wcześniej zidentyfikowanego klienta.

Powiązane problemy