Передача дополнительных HTTP заголовков при установке Websocket соединения¶
В сборке 2.6.8 добавлена возможность передачи дополнительных HTTP заголовков при установке Websocket соединения с сервером. Для этого используется функция
Допустим, что на сервере настроено проксирование Websocket трафика с авторизацией при помощи nginx. При этом параметры авторизации должны передаваться в Websocket URL
В этом случае, заголовок Authorization для передачи имени и пароля пользователя может быть сформирован из параметров Websocket URL и отправлен при установке соединения следующим образом:
NSURL* nsURL = [NSURL URLWithString:_urlInput.text];
if (nsURL.user && nsURL.password) {
NSString* auth = [NSString stringWithFormat:@"%@:%@", nsURL.user, nsURL.password];
NSData *authData = [auth dataUsingEncoding:NSUTF8StringEncoding];
NSString *authBase64 = [NSString stringWithFormat:@"Basic %@", [authData base64EncodedStringWithOptions:kNilOptions]];
NSDictionary *headers = [[NSDictionary alloc] initWithObjectsAndKeys: authBase64, @"Authorization", nil];
[_session connectWithHeaders: headers];
} else {
[_session connect];
}