[英]Websocket client not working for wss using python code
我正在使用 python 客戶端連接到托管在 azure 中的服務器。 我正在使用 websockets 進行連接。 我在 python 客戶端代碼中傳遞了身份驗證 header。 當我們給wss:// url 進行連接時,代碼不起作用。 錯誤說:
Handshake status 403 Forbidden
然而,當使用 postman 進行測試時,同樣的事情是有效的。
下面是用於連接 websocket 服務器的代碼片段:
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws, close_status_code, close_msg):
print("### closed ###")
def on_open(ws):
print("Opened connection")
auth_str = "Authorization:Basic abgvrgfrbnfrfurfr"
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("wss://uri.com/websocket",
header=[auth_str],
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close
)
ws.run_forever(dispatcher=rel)
rel.signal(2, rel.abort)
rel.dispatch()
postman和python客戶端中請求的請求頭沒有區別。 不知道為什么 python 客戶端說403 forbidden
disabled 。
它僅在一種情況下工作:在應用服務中將 HTTPSOnly 設置為 false 並傳遞 ws:// uri 而不是 wss://
如我所見,您的 header 參數定義錯誤。 它需要像
ws = websocket.WebSocketApp("wss://uri.com/websocket",
header={ 'Authorization': 'Basic abgvrgfrbnfrfurfr' },
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.