Skip to content

Custom HTTP headers using while establishing Websocket connection

Since build 2.6.8 it is possible to add custom HTTP headers while establishing Websocket connection to WCS server. To do this, use the following function

FPWCSApi2Session connectWithHeaders:(NSDictionary<NSString *, NSString *> *) headers

Suppose that Websocket traffic proxying with user authentication is configured on the server using nginx. In this case, user credentials should be passed in Websocket URL

wss://login:password@test.flashphoner.com/wss

In this case, Authorization HTTP header should be formed from Websocket URL and should be sent while connecting to the server as follows:

code

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];
}