SocketServiceHandler.m 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. //
  2. // SocketServiceHandler.m
  3. // OneCable
  4. //
  5. // Created by KaRam Kim on 2017. 2. 17..
  6. // Copyright © 2017년 ntels. All rights reserved.
  7. //
  8. #import "SocketServiceHandler.h"
  9. #import <SocketRocket/SRWebSocket.h>
  10. #import "Definitions.h"
  11. @interface SocketServiceHandler() <SRWebSocketDelegate>
  12. {
  13. SRWebSocket *_socket;
  14. }
  15. @end
  16. @implementation SocketServiceHandler
  17. + (id)sharedManager
  18. {
  19. static SocketServiceHandler *sharedSocketServiceHandler = nil;
  20. static dispatch_once_t onceToken;
  21. dispatch_once(&onceToken, ^{
  22. sharedSocketServiceHandler = [[self alloc] init];
  23. });
  24. return sharedSocketServiceHandler;
  25. }
  26. - (id) init
  27. {
  28. self = [super init];
  29. if (self) {
  30. _isConnected = NO;
  31. _strSocketURL = kSocketServer;
  32. _socket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:_strSocketURL]];
  33. _socket.delegate = self;
  34. [self socketOpen];
  35. }
  36. return self;
  37. }
  38. - (void) socketOpen
  39. {
  40. NSLog(@"socketOpen");
  41. if( _socket != nil )
  42. [_socket open];
  43. else
  44. {
  45. _socket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:_strSocketURL]];
  46. _socket.delegate = self;
  47. [_socket open];
  48. }
  49. }
  50. - (void) connect
  51. {
  52. if( !_isConnected )
  53. {
  54. NSString* token = @"";
  55. // if( ![[[APUserDefaultManager sharedManager] getUserDefault:UDKEY_TOKEN] isEqualToString:@""] )
  56. // token = [[APUserDefaultManager sharedManager] getUserDefault:UDKEY_TOKEN];
  57. NSData * jsonData = [NSJSONSerialization dataWithJSONObject:@{@"token":token} options:0 error:nil];
  58. NSString * myString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
  59. NSLog(@"%@ : %ld" ,myString, (long)_socket.readyState);
  60. if( _socket.readyState == SR_OPEN )
  61. {
  62. [_socket send:myString];
  63. _isConnected = YES;
  64. }
  65. else if ( _socket.readyState == SR_CLOSED || _socket.readyState == SR_CLOSING )
  66. {
  67. [self disconnect];
  68. // [_socket open];
  69. _socket = nil;
  70. [self socketOpen];
  71. }
  72. }
  73. }
  74. - (void) disconnect
  75. {
  76. if( _isConnected )
  77. {
  78. [_socket close];
  79. _socket = nil;
  80. }
  81. }
  82. - (void) initWithDelegate:(id<SocketServiceHandlerDelegate>) delegate
  83. {
  84. [self setDelegate:delegate];
  85. }
  86. @end