Поддержка basic auth авторизации в Android SDK

edemin

New Member
Здравствуйте!
Подскажите пожалуйста планируется ли добавление возможности basic auth авторизации в вашем Android SDK, а то в документации нигде нет упоминания об этом? Если планируется, скажите примерные сроки реализации. Спасибо!

P.S. Пробовали в версиях 1.1.0.7, 1.1.0.13, не работает с URL вида wss://user:user_pass@host_wcs:wcs_websocket_port
 

Max

Administrator
Staff member
Добрый день.
В данный момент basic auth авторизация для websocket соединений не поддерживается сервером. Мы создали тикет WCS-2923, чтобы добавить этот функционал. Обратите внимание, что скорость реализации новых функций зависит от количества голосов пользователей, которым нужна эта функция.
Вы можете использовать для авторизации REST hook /connect, передавая токен авторизации в поле custom, проверять токен при этом необходимо на бэкенде. Чтобы передать параметры авторизации из Android приложения, используйте метод Connection.setCustom()
Code:
private Session session;
private Connection connection;
...
connection = new Connection();
connection.setCustom("token", "abcdef");
session.connect(connection);
Пример простейшего бэкенд приложения, обрабатывающего REST hook, приведен в этой статье.
 

edemin

New Member
Добрый день.
В данный момент basic auth авторизация для websocket соединений не поддерживается сервером. Мы создали тикет WCS-2923, чтобы добавить этот функционал. Обратите внимание, что скорость реализации новых функций зависит от количества голосов пользователей, которым нужна эта функция.
Вы можете использовать для авторизации REST hook /connect, передавая токен авторизации в поле custom, проверять токен при этом необходимо на бэкенде. Чтобы передать параметры авторизации из Android приложения, используйте метод Connection.setCustom()
Code:
private Session session;
private Connection connection;
...
connection = new Connection();
connection.setCustom("token", "abcdef");
session.connect(connection);
Пример простейшего бэкенд приложения, обрабатывающего REST hook, приведен в этой статье.
1. Мы закрываем websocket соединение с помощью basic auth на nginx и через сторонние библиотеки на разных языках удается подключиться (к вебсокету) без проблем.
В этом случае реализация basic auth на серверной стороне не требуется, но требуется поддержка в клиентских SDK. Можете еще раз уточнить передача basic auth в url не поддерживаться только в клиентской Android SDK или остальные ( JS, IOS и пр.) также не смогут работать?
2. А где и как происходит голосование за тикеты, на гитхабе только примеры и по ишьюс отправляют на форум?
 
Last edited:

edemin

New Member
Еще подскажите, а есть какие-то общие рекомендации по аппаратному обеспечению (цпу, память для сервера) на какую-то типичную нагрузку, несколько видео-звонков, несколько аудио-звонков, чтобы можно было хотя бы примерно ориентироваться на какие-то цифры?
 

Max

Administrator
Staff member
Можете еще раз уточнить передача basic auth в url не поддерживаться только в клиентской Android SDK или остальные ( JS, IOS и пр.) также не смогут работать?
На данный момент это не поддерживается во всех SDK. В тикете WCS-2923 реализуем поддержку и на серверной стороне проброс на бэкенд.
2. А где и как происходит голосование за тикеты, на гитхабе только примеры и по ишьюс отправляют на форум?
Если на форуме участники запрашивают какую-то функцию, каждый такой запрос считается голосом. Issues на GitHub касаются, как правило, возможных проблем в примерах и их сборки.
Еще подскажите, а есть какие-то общие рекомендации по аппаратному обеспечению (цпу, память для сервера) на какую-то типичную нагрузку, несколько видео-звонков, несколько аудио-звонков, чтобы можно было хотя бы примерно ориентироваться на какие-то цифры?
Пожалуйста, почитайте эту статью, в конце есть общие рекомендации. Также почитайте эту тему, там хороший пример того, что более мощный сервер может выдержать больше подписчиков, но при этом основным ограничением могут стать каналы между серверами в CDN и между подписчиками и сервером.
 

Max

Administrator
Staff member
Добрый день.
В сборке Android SDK 1.1.0.16 добавлена возможность передачи дополнительных HTTP заголовков при установке Websocket соединения с сервером при помощи функции
Code:
Session.connect(Connection connection, java.util.Map<java.lang.String,java.lang.String> customHeaders)
Вы можете сформировать заголовок Authorization из Websocket URL
Code:
wss://login:password@test.flashphoner.com/wss
и передать его при установке Websocket соединения. Подробности в документации, там же ссылки на пример Media Devices на GitHub.
В Web SDK эта возможность также поддерживается.
 
Top