Skip to content
This repository was archived by the owner on May 14, 2024. It is now read-only.

Commit e0e4f62

Browse files
committed
Added method to pass cookies on conenct
1 parent 016a438 commit e0e4f62

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

SocketIO.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,12 @@ typedef enum {
106106
- (id) initWithDelegate:(id<SocketIODelegate>)delegate;
107107
- (void) connectToHost:(NSString *)host onPort:(NSInteger)port;
108108
- (void) connectToHost:(NSString *)host onPort:(NSInteger)port withParams:(NSDictionary *)params;
109+
- (void) connectToHost:(NSString *)host onPort:(NSInteger)port withParams:(NSDictionary *)params withCookieParams:(NSDictionary *)cookieParams;
109110
- (void) connectToHost:(NSString *)host onPort:(NSInteger)port withParams:(NSDictionary *)params withNamespace:(NSString *)endpoint;
111+
- (void) connectToHost:(NSString *)host onPort:(NSInteger)port withParams:(NSDictionary *)params withCookieParams:(NSDictionary *)cookieParams withNamespace:(NSString *)endpoint;
110112
- (void) connectToHost:(NSString *)host onPort:(NSInteger)port withParams:(NSDictionary *)params withNamespace:(NSString *)endpoint withConnectionTimeout: (NSTimeInterval) connectionTimeout;
113+
- (void) connectToHost:(NSString *)host onPort:(NSInteger)port withParams:(NSDictionary *)params withCookieParams:(NSDictionary *)cookieParams withNamespace:(NSString *)endpoint withConnectionTimeout: (NSTimeInterval) connectionTimeout;
114+
111115

112116
- (void) disconnect;
113117
- (void) disconnectForced;

SocketIO.m

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ - (void) connectToHost:(NSString *)host onPort:(NSInteger)port withParams:(NSDic
104104
[self connectToHost:host onPort:port withParams:params withNamespace:@"" withConnectionTimeout:defaultConnectionTimeout];
105105
}
106106

107+
- (void) connectToHost:(NSString *)host onPort:(NSInteger)port withParams:(NSDictionary *)params withCookieParams:(NSDictionary *)cookieParams
108+
{
109+
[self connectToHost:host onPort:port withParams:params withCookieParams:cookieParams withNamespace:@"" withConnectionTimeout:defaultConnectionTimeout];
110+
}
111+
107112
- (void) connectToHost:(NSString *)host
108113
onPort:(NSInteger)port
109114
withParams:(NSDictionary *)params
@@ -112,11 +117,30 @@ - (void) connectToHost:(NSString *)host
112117
[self connectToHost:host onPort:port withParams:params withNamespace:endpoint withConnectionTimeout:defaultConnectionTimeout];
113118
}
114119

120+
- (void) connectToHost:(NSString *)host
121+
onPort:(NSInteger)port
122+
withParams:(NSDictionary *)params
123+
withCookieParams:(NSDictionary *)cookieParams
124+
withNamespace:(NSString *)endpoint
125+
{
126+
[self connectToHost:host onPort:port withParams:params withCookieParams:cookieParams withNamespace:endpoint withConnectionTimeout:defaultConnectionTimeout];
127+
}
128+
115129
- (void) connectToHost:(NSString *)host
116130
onPort:(NSInteger)port
117131
withParams:(NSDictionary *)params
118132
withNamespace:(NSString *)endpoint
119133
withConnectionTimeout:(NSTimeInterval)connectionTimeout
134+
{
135+
[self connectToHost:host onPort:port withParams:params withCookieParams:nil withNamespace:endpoint withConnectionTimeout:defaultConnectionTimeout];
136+
}
137+
138+
- (void) connectToHost:(NSString *)host
139+
onPort:(NSInteger)port
140+
withParams:(NSDictionary *)params
141+
withCookieParams:(NSDictionary *)cookieParams
142+
withNamespace:(NSString *)endpoint
143+
withConnectionTimeout:(NSTimeInterval)connectionTimeout
120144
{
121145
if (!_isConnected && !_isConnecting) {
122146
_isConnecting = YES;
@@ -142,10 +166,19 @@ - (void) connectToHost:(NSString *)host
142166
query = nil;
143167

144168
// make a request
145-
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:handshakeUrl]
169+
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:handshakeUrl]
146170
cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData
147171
timeoutInterval:connectionTimeout];
148172

173+
if (cookieParams) {
174+
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieParams];
175+
NSArray* cookieArray = [NSArray arrayWithObjects: cookie, nil];
176+
NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookieArray];
177+
[request setAllHTTPHeaderFields:headers];
178+
}
179+
180+
[request setHTTPShouldHandleCookies:YES];
181+
149182
_handshake = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
150183
[_handshake scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
151184
[_handshake start];

0 commit comments

Comments
 (0)