Как я могу пройти аутентификацию, используя jwt? В документах говорится, что использование события обновления - правильный путь к go, но когда клиент подключился, код в функции обновления не запустился.
Ну, есть много разных вариантов. Вы можете передать токен как параметр запроса пользовательского заголовка при первом установлении соединения. Вы могли бы потребовать, чтобы первые данные, отправленные через webSocket, были токенами и отключаться, если такой токен не прибывает скоро и первым. Если клиент уже прошел проверку подлинности и существует http-повар ie, который указывает на это, вы можете проверить этот повар ie при подключении через веб-сокет.
Как правильно добавить тип события? В socket.io можно слушать, используя client.on ('eventType', функция). Что такое эквивалент WebSocket?
Типы сообщений socket.io (или типы событий, как вы их называете) - это то, что socket.io добавляет поверх webSocket. Сам протокол webSocket не имеет такой вещи. Вы отправляете пакет данных, и этот пакет данных поступает на другой конец. Все пакеты данных имеют один и тот же «тип» webSocket. Если вы хотите идентифицировать ваши пакеты данных как сообщения определенного типа, то вам нужно придумать способ сделать это внутри своих данных обратно. Например, если ваши данные были отформатированы в JSON, вы можете добавить свойство type: "someType"
к сообщению о событии и затем проверить это свойство при получении (это, по сути, то, что делает socket.io, хотя и делает это вне полезной нагрузки socket.io). ).
Когда и зачем использовать пути в webSocket ws?
У вас может быть две совершенно разные части кода, которые используют webSocket для разных вещей, которые не имеют ничего в общем и находятся в отдельных модулях, и для каждого из них проще иметь собственное подключение к WebSocket. И они могут использоваться двумя совершенно разными типами клиентов.
Как получить доступ к оригинальному URL, когда клиент webSocket подключается к вашему серверу, отображается здесь на событии upgrade
вашего сервера, используемом с библиотекой ws
.
В этом примере вы заметите, что событие upgrade
происходит на сервере http, а не на экземпляре сервера websocket.