Python中的WebSocket创建连接

问题描述:

我有这个服务器Python中的WebSocket创建连接

https://github.com/crossbario/autobahn-python/blob/master/examples/twisted/websocket/echo_tls/server.py

而且我想与此代码连接到服务器:

ws = create_connection("wss://127.0.0.1:9000") 

我需要什么选项添加到create_connection?添加sslopt={"cert_reqs": ssl.CERT_NONE}不起作用:

websocket._exceptions.WebSocketBadStatusException: Handshake status 400 
+0

您是否收到任何错误? – Thomas

+0

是的,websocket._exceptions.WebSocketBadStatusException:握手状态400 – Crone

+1

您正在使用哪个websocket包?如果它是['websocket'](https://pypi.python.org/pypi/websocket),那似乎严重过时了。请尝试['websockets'](https://pypi.python.org/pypi/websockets)或['websocket-client'](https://pypi.python.org/pypi/websocket-client)。 – Thomas

这工作

import asyncio 
import websockets 

async def hello(): 
    async with websockets.connect('wss://127.0.0.1:9000',ssl=ssl.SSLContext(protocol=ssl.PROTOCOL_TLS)) as websocket: 
     data = 'hi' 
     await websocket.send(data) 
     print("> {}".format(data)) 

     response = await websocket.recv() 
     print("< {}".format(response)) 

asyncio.get_event_loop().run_until_complete(hello())