2016-11-17 34 views
0

有一种方法可以像下面那样创建带SSL参数的websocket。如何使用SSL创建一个python websocket并在其中使用cookie?

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}) 

从示例here,创建websocket连接的方法之一如下。但是,我没有给出如何通过上面所做的SSL参数?

什么方式使用带SSL参数的'WebSocketApp'以及将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() 

回答

2
  • 我估计到cookie传递到下面的连接方式。该Cookie在URL本身中编码。注意:请参考您的服务器实现的URL组件。 ip_addr,端口和cookie可以是本地参数。

    url = "ws://{0}:{1}/socket{2}".format(str(ip_addr), str(port), cookie) 
    

    创建websocket连接时传递此URL。请参阅原始问题以查看URL的传递位置。

  • 我也找到了答案从参考here

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

这两种变化在我的工作的情况下通过SSL参数。