Сам протокол websocket это TCP протокол постоянного соединения (скажем так есть некие "базовые" протоколы на которых делаю уже свои "подпротоколы") между клиентом и сервером (в отличие от HTTP который заканчивается при получении ответа от сервера) , в который группа разработчиков (говорю условно, для понимания) создала некий набор правил по формированию заголовков, разделителя пакетов данных и тп.