можно получить сессионный cookie,
Что вы подразумеваете под сессионным cookie?Если вы имеете в виду что-то похожее на файл cookie сеанса Flask, то нет, файл cookie сеанса отсутствует.Сеанс пользователя хранится на сервере, а не в файле cookie.
Если вы имеете в виду файл cookie sid
, который содержит идентификатор сеанса, назначенный клиенту, вы можете получить этот идентификатор из атрибута sid
Ваш клиентский объект, например как sio.sid
.
, возможно ли получить ответ из .emit, не проходя через @ sio.event или @ sio.on ()?
Да, вы можете использовать для этого функцию «ack» протокола Socket.IO.Если сервер является сервером Python, вы можете просто вернуть ответ из функции-обработчика.Например:
@sio.event
def GetNbrPlayers():
return [{"data": "5"}]
В клиенте Python у вас есть два способа получить эту информацию.Вы можете использовать функцию обратного вызова:
def get_response(data):
print(data)
sio.emit("GetNbrPlayers", callback=get_response)
Или вы можете использовать call()
вместо emit()
, чтобы объединить обработку emit и обратного вызова в один вызов функции:
data = sio.call("GetNbrPlayers")