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%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: Ссылка
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.