Для будущего искателя:
В при рукопожатии WebSocket без проблем можно установить cookie. Если это нужно сделать позже, то либо нужно делать дополнительные HTTP/GET запросы для установки cookie с сервера, либо установить cookie через JS/WebSocket
Пример установки cookie для aiohttp
async def websocket_handler(request):
ws = web.WebSocketResponse()
# set cookie when shaking hands
ws.set_cookie('name', 'value', path='/', expires=None, domain=None, max_age=86400*30, secure=True, httponly=True, version=None, samesite='None')
await ws.prepare(request)
async for msg in ws:
if msg.type == aiohttp.WSMsgType.TEXT:
if msg.data == 'close':
await ws.close()
else:
await ws.send_str(msg.data + '/answer')
elif msg.type == aiohttp.WSMsgType.ERROR:
print('ws connection closed with exception %s' %
ws.exception())
print('websocket connection closed')
return ws