Черновик 76 переименовал заголовки ответа WebSocket-
в Sec-WebSocket-
и добавил ненужные некрасивые заголовки Key
и криптографию тела запроса, на которые 8jKS'y:G*Co,Wxa-
является ответом. Но это только правильный ответ для примера, включенного в черновик; возвращать эту конкретную строку для любого другого запроса бесполезно. См. этот пост для объяснения того, как реализовать новый протокол.
В любом случае, если вы не используете последние версии разработки, Chrome / Chromium по-прежнему будет использовать старый протокол черновика 75 (как показывает запрос, который вы разместили) и не будет общаться с сервером, который реализует новую протокол. См. Chromium blog для получения дополнительной информации. Если вам требуется поддержка старых / текущих версий Chrome, вам фактически необходимо реализовать два протокола WebSocket.
Это всегда риск при разработке материала на основе протокола, который еще не стандартизирован. Вы можете ожидать раздражающей интероперабельности, пока WebSocket не будет завершен; Вы можете предпочесть подождать до тех пор.
(Попытка действительно прочитать спецификацию и выяснить, что именно изменилось среди множества нечитаемых алгоритмов синтаксического анализа, - упражнение в разочаровании. Я понятия не имею, почему оно написано так вместо обычных спецификаций BNF-стиля Как будто Хикси написал парсер на C, а затем написал автоматизированный инструмент для преобразования кода в английский. C был бы более читабельным TBH.)