// // SocketServiceHandler.m // OneCable // // Created by KaRam Kim on 2017. 2. 17.. // Copyright © 2017년 ntels. All rights reserved. // #import "SocketServiceHandler.h" #import #import "Definitions.h" @interface SocketServiceHandler() { SRWebSocket *_socket; } @end @implementation SocketServiceHandler + (id)sharedManager { static SocketServiceHandler *sharedSocketServiceHandler = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ sharedSocketServiceHandler = [[self alloc] init]; }); return sharedSocketServiceHandler; } - (id) init { self = [super init]; if (self) { _isConnected = NO; _strSocketURL = kSocketServer; _socket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:_strSocketURL]]; _socket.delegate = self; [self socketOpen]; } return self; } - (void) socketOpen { NSLog(@"socketOpen"); if( _socket != nil ) [_socket open]; else { _socket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:_strSocketURL]]; _socket.delegate = self; [_socket open]; } } - (void) connect { if( !_isConnected ) { NSString* token = @""; // if( ![[[APUserDefaultManager sharedManager] getUserDefault:UDKEY_TOKEN] isEqualToString:@""] ) // token = [[APUserDefaultManager sharedManager] getUserDefault:UDKEY_TOKEN]; NSData * jsonData = [NSJSONSerialization dataWithJSONObject:@{@"token":token} options:0 error:nil]; NSString * myString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"%@ : %ld" ,myString, (long)_socket.readyState); if( _socket.readyState == SR_OPEN ) { [_socket send:myString]; _isConnected = YES; } else if ( _socket.readyState == SR_CLOSED || _socket.readyState == SR_CLOSING ) { [self disconnect]; // [_socket open]; _socket = nil; [self socketOpen]; } } } - (void) disconnect { if( _isConnected ) { [_socket close]; _socket = nil; } } - (void) initWithDelegate:(id) delegate { [self setDelegate:delegate]; } @end