Здравствуйте, я работаю на сервере websocket, который также должен аутентифицировать пользователя по пользователю и по токену пользователя. Но мне также нужно различать причину, по которой websocket был отключен на клиенте, и переподключаться, если ошибка была неожиданной.
defmodule MyApp.SocketHandler do
def init(request, _state) do
...
case UserAuthenticator.auth(user_id, user_token)
{:ok, :successful_authentication} ->
state = %{...}
{:cowboy_websocket, request, state}
_ ->
<how to implement the custom error code here and terminate connection properly>
end
end
end
Таким образом, вопрос заключается в том, как реализовать правильное завершение соединения через веб-сокет, и я должен сделать это в функции инициализации?