So fügen Sie weitere Header im Websocket-Python-Client hinzu

9

Ich versuche, Session-ID (ich habe es nach der Authentifizierung gegen http-Server) über eine Websocket-Verbindung (ich benutze Python WebSocket-Client) zu senden, ich muss es als Header übergeben Parameter, bei dem der Server (Tornado Websocket Server) alle Header liest und überprüft.

Die Frage ist: Wie kann ich Header hinzufügen, um eine der vorhandenen Weboneet-Implementierungen von Client-Pythons zu verwenden? Ich finde, dass keiner von ihnen das kann, oder folge ich der falschen Vorgehensweise für die Authentifizierung?

- Update - , Unterhalb einer Vorlage des Codes, den ich verwende:

%Vor%     
securecurve 22.01.2013, 09:10
quelle

2 Antworten

4

Es scheint so zu sein, dass websocket-client aktualisiert wurde, um websocket-Header aufzunehmen, seit diese Frage gestellt wurde. Jetzt können Sie einfach eine Liste von Header-Parametern als Strings übergeben:

%Vor%

Wenn Sie sich für die vollständige Liste der gültigen Header interessieren, finden Sie im Dokument websocket RFC6455: Ссылка

GitHub Quelle: Ссылка

    
IanTheEngineer 09.10.2013, 17:37
quelle
7

Nichts ist amüsanter als das Lesen des Quellcodes:))

Ich habe den Quellcode der Websocket-Client-Bibliothek gepatcht, damit er einen Header als normalen Parameter im Initialisierer erhalten kann:

%Vor%

Dies kann durch Bearbeiten von 3 Zeilen im Websocket.py-Quellcode der Bibliothek erfolgen:

1- Header-Parameter hinzufügen:

%Vor%

2- Übergeben Sie dann den self.header an die Methode websocket connect als Header-Parameter wie folgt:

%Vor%

Eigentlich habe ich versucht, die WebSocketApp-Klasse zu importieren, aber es hat nicht funktioniert, da das gesamte websocket.py-Modul voneinander abhängig ist, dass ich viele Dinge importiere, um es zum Laufen zu bringen, Affen-Patching ist einfacher und solider in diesem Fall.

Das ist alles, viel Spaß mit Ihrer gepatchten Bibliothek mit allen benötigten Kopfzeilen.

    
securecurve 23.01.2013 05:37
quelle

Tags und Links