Python v3.5またはv3.6を使用すると、websocketクライアントはいくつかのwebsocketサーバに接続しても閉じられません。以下のサンプルコードは、wss://echo.websocket.orgに接続しても正しく動作するプロセスを示していますが、wss:/stream.pushbullet.comに接続すると切断できません。aiohttp websocketサーバに接続してもWebSocketが閉じない
誰に違いがあるのでしょうか?それはサーバと何か関係があり、それがどのように振る舞うか(あるいは誤った振る舞いをするかもしれない)ようには思えない。 aiohttpの
import asyncio
import aiohttp
# Code: http://pastebin.com/G5sfpQG2
# Closing the echo.websocket.org connection works as expected
# Closing the stream.pushbullet.com connection hangs
async def run():
session = aiohttp.ClientSession()
API_KEY = "RrFnc1xaeQXnRrr2auoGA1e8pQ8MWmMF" # (OK to have here)
async with session.ws_connect('wss://stream.pushbullet.com/websocket/' + API_KEY) as ws:
# async with session.ws_connect("wss://echo.websocket.org") as ws:
ws.send_json({"hello": "world"})
async def _timeout():
await asyncio.sleep(2)
print('closing ... ', end="", flush=True)
await ws.close()
print('... closed. Should see "broke out of ..." messages next')
asyncio.get_event_loop().create_task(_timeout())
async for ws_msg in ws:
print("ws_msg:", ws_msg)
print("broke out of async for loop")
print("broke out of async with")
session.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(run())
print("goodbye")
これは質問に対する答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-代わりに)。 - [レビューから](/レビュー/低品質の投稿/ 16737768) – kdopen