如何使用SSL创建python websocket并在其中使用cookie?

如何使用SSL创建python websocket并在其中使用cookie?,python,ssl,websocket,Python,Ssl,Websocket,有一种使用SSL参数创建websocket的方法,如下所示 ws = create_connection("ws://{0}/socket{1}".format(ip_addr, cookie), sslopt={"cert_reqs": ssl.CERT_NONE, "check_hostname": False, "ssl_

有一种使用SSL参数创建websocket的方法,如下所示

ws = create_connection("ws://{0}/socket{1}".format(ip_addr, cookie),
                       sslopt={"cert_reqs": ssl.CERT_NONE,
                               "check_hostname": False,
                               "ssl_version": ssl.PROTOCOL_TLSv1})
通过一个示例,创建websocket连接的方法之一如下所示。但是,没有给出如何像上面那样传递SSL参数

如何将“WebSocketApp”与SSL参数一起使用,并将cookie传递给它

if __name__ == "__main__":
    websocket.enableTrace(True)
    if len(sys.argv) < 2:
        host = "ws://echo.websocket.org/"
    else:
        host = sys.argv[1]
    ws = websocket.WebSocketApp(host,
                                on_message=on_message,
                                on_error=on_error,
                                on_close=on_close)
    ws.on_open = on_open
    ws.run_forever()
如果名称=“\uuuuu main\uuuuuuuu”:
websocket.enableTrace(真)
如果len(系统argv)<2:
host=“ws://echo.websocket.org/”
其他:
主机=sys.argv[1]
ws=websocket.WebSocketApp(主机,
on_message=on_message,
on_错误=on_错误,
开闭=开闭)
ws.on_open=on_open
ws.run_forever()
  • 我找到了将cookie传递到连接的方法,如下所示。cookie在URL本身中进行编码。注意:请参考每个服务器实现的URL组件。ip地址、端口和cookie可以是本地参数

    url = "ws://{0}:{1}/socket{2}".format(str(ip_addr), str(port), cookie)
    
    创建websocket连接时传递此URL。请参考原始问题以查看URL的传递位置

  • 我还找到了一个通过引用传递SSL参数的答案

这两个变化在我的情况下都起了作用

import ssl

ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE,
                   "check_hostname": False,
                   "ssl_version": ssl.PROTOCOL_TLSv1})