stadium-proto/Сессия.md
shr3dd3r 550661e71f Начало разработки полной версии спецификации
Практически исчерпывающе описано понятие сессии.
2024-05-23 21:07:36 +03:00

2.5 KiB
Raw Permalink Blame History

Сессия

Сессия объединяет в себе несколько потоков, созданных одним клиентом. Все пакеты, отправленные в любом из потоков принадлежащих одной сессии, интерпретируются как пакеты от одного и того-же клиента.

Сессия создаётся в следствии рукопожатия определённого типа. При создании сессии всегда создаётся один принадлежащий ей поток. Создание сессии может быть провалено в следствие передачи некорректной версии протокола.

Сессия существует до тех пор, пока в её рамках существует хотя бы один поток, при уничтожении последнего потока в ней - сессия уничтожается. Клиент может явно запросить у сервера уничтожение сессии. При уничтожении сессии также уничтожаются все принадлежащие её потоки. Если сервер собирается уничтожить сессию по своей воле, то ему следует предупредить об этом клиента.

У каждой сессии есть собственный, независимый от других сессий, набор параметров, который задаётся клиентом во время её создания и не может быть изменён в последствии. Сервер должен отклонять некорректные конфигурации параметров. В набор параметров сессии входит версия протокола, которая требуется для обеспечения совместимости. Оба узла должны коммуницировать в рамках установленной версии и имеют право уничтожить сессию, в случае несоблюдения этого условия.