Browse Source

- WebSocket 모듈 작업

KaRam Kim 8 years ago
parent
commit
8df0176690
1 changed files with 72 additions and 4 deletions
  1. 72 4
      OneCable/Classes/Handler/SocketServiceHandler.m

+ 72 - 4
OneCable/Classes/Handler/SocketServiceHandler.m

@@ -46,6 +46,11 @@
     return self;
 }
 
+- (void) initWithDelegate:(id<SocketServiceHandlerDelegate>) delegate
+{
+    [self setDelegate:delegate];
+}
+
 - (void) socketOpen
 {
     NSLog(@"socketOpen");
@@ -82,8 +87,7 @@
         else if ( _socket.readyState == SR_CLOSED || _socket.readyState == SR_CLOSING )
         {
             [self disconnect];
-            //            [_socket open];
-            _socket = nil;
+             _socket = nil;
             [self socketOpen];
         }
     }
@@ -97,9 +101,73 @@
     }
 }
 
-- (void) initWithDelegate:(id<SocketServiceHandlerDelegate>) delegate
+#pragma mark - SRWebSocketDelegate
+- (void)webSocketDidOpen:(SRWebSocket *)webSocket
 {
-    [self setDelegate:delegate];
+    NSLog(@"SOCKET didOpen");
+}
+
+- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message
+{
+    NSLog(@"SOCKET didReceiveMessage : %@", message);
+    
+    NSString *errString = @"";
+    
+    if( message == nil || [message isEqualToString:@""] )
+        errString = @"message empty";
+    else
+    {
+        if( [message isKindOfClass:[NSString class]] )
+        {
+            NSError* error = nil;
+            NSDictionary *jsonObj = [NSJSONSerialization JSONObjectWithData:[message dataUsingEncoding:NSUTF8StringEncoding]
+                                                                    options:NSJSONReadingMutableContainers
+                                                                      error:&error];
+            
+            if (error != nil) {
+                NSLog(@"NSJSONSerialization JSONObject error: %@", [error localizedDescription]);
+                return;
+            }
+            
+            NSInteger msgType = [jsonObj[@"type"] integerValue];
+            
+            if ( msgType == 0 ) {
+                
+            }
+
+            else
+            {
+                NSLog(@"msgType : %i",(int)msgType);
+                
+            }
+        }
+    }
+}
+
+- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error
+{
+    NSLog(@"WebSocket error: %@", error);
+    
+    _isConnected = NO;
+    [_socket close];
+    _socket = nil;
+    [self socketOpen];
+}
+
+- (void)webSocket:(SRWebSocket *)webSocket didReceivePong:(NSData *)pongPayload
+{
+    NSLog(@"WebSocket Receive Pong: %@", pongPayload);
+}
+
+- (void)webSocket:(SRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean
+{
+    NSLog(@"WebSocket closed with code: %ld reason:%@ wasClean:%d",
+          (long)code, reason, wasClean);
+    
+    _isConnected = NO;
+    [_socket close];
+    _socket = nil;
+    [self socketOpen];
 }
 
 @end