Prechádzať zdrojové kódy

WebSocket 클라이언트 라이브러리 작업

KaRam Kim 8 rokov pred
rodič
commit
da71e1bf3c

+ 6 - 0
OneCable.xcodeproj/project.pbxproj

@@ -174,6 +174,7 @@
 		A1BC6EC81C3E578F00D957D9 /* CustomLabelButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A1BC6EC71C3E578F00D957D9 /* CustomLabelButton.m */; };
 		A1BC6ECA1C3E57A000D957D9 /* CustomLabelButton.xib in Resources */ = {isa = PBXBuildFile; fileRef = A1BC6EC91C3E57A000D957D9 /* CustomLabelButton.xib */; };
 		A1CC0BF61C3B8A2D00B05DA3 /* NSLayoutConstraint+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = A1CC0BF51C3B8A2D00B05DA3 /* NSLayoutConstraint+Additions.m */; };
+		A53C0DAF1E56E2F000E5D9F4 /* SocketServiceHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = A53C0DAE1E56E2F000E5D9F4 /* SocketServiceHandler.m */; };
 		A5F267DA1E544A530096276E /* NSNetService+Util.m in Sources */ = {isa = PBXBuildFile; fileRef = A5F267D91E544A530096276E /* NSNetService+Util.m */; };
 /* End PBXBuildFile section */
 
@@ -487,6 +488,8 @@
 		A1CC0BF41C3B8A2D00B05DA3 /* NSLayoutConstraint+Additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSLayoutConstraint+Additions.h"; sourceTree = "<group>"; };
 		A1CC0BF51C3B8A2D00B05DA3 /* NSLayoutConstraint+Additions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSLayoutConstraint+Additions.m"; sourceTree = "<group>"; };
 		A507ABE31E5149EC0013786A /* OneCable.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = OneCable.entitlements; sourceTree = "<group>"; };
+		A53C0DAD1E56E2F000E5D9F4 /* SocketServiceHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SocketServiceHandler.h; sourceTree = "<group>"; };
+		A53C0DAE1E56E2F000E5D9F4 /* SocketServiceHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SocketServiceHandler.m; sourceTree = "<group>"; };
 		A576561A1E52EFF8002D0AE2 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = "<group>"; };
 		A5F267D81E544A530096276E /* NSNetService+Util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSNetService+Util.h"; sourceTree = "<group>"; };
 		A5F267D91E544A530096276E /* NSNetService+Util.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSNetService+Util.m"; sourceTree = "<group>"; };
@@ -737,6 +740,8 @@
 				A13BCF1C1C3B491400C76527 /* RequestHandler.m */,
 				A16A1CC21C71728400F92BC1 /* NetworkServiceHandler.h */,
 				A16A1CC31C71728400F92BC1 /* NetworkServiceHandler.m */,
+				A53C0DAD1E56E2F000E5D9F4 /* SocketServiceHandler.h */,
+				A53C0DAE1E56E2F000E5D9F4 /* SocketServiceHandler.m */,
 			);
 			path = Handler;
 			sourceTree = "<group>";
@@ -1363,6 +1368,7 @@
 				A13BCFE31C3B491400C76527 /* UIImage+Addtions.m in Sources */,
 				A16D937E1C5600D300DC0DF1 /* DurationPopupView.m in Sources */,
 				A13BCFE51C3B491400C76527 /* UIView+Additions.m in Sources */,
+				A53C0DAF1E56E2F000E5D9F4 /* SocketServiceHandler.m in Sources */,
 				A13BD00C1C3B491400C76527 /* CustomRadioGroup.m in Sources */,
 				A13BD03F1C3B491400C76527 /* NoticeViewController.m in Sources */,
 				A13BD0091C3B491400C76527 /* CustomLabel.m in Sources */,

+ 4 - 0
OneCable/Classes/Definitions.h

@@ -23,6 +23,8 @@ static NSString *kAPIServer = @"https://www.iotbusan.com";      //운영
 //상용서버
 //    #define API_SERVER      @"https://home-api.allofthings.com"       //상용서버
 //    #define NISC_SERVER     @"https://home-api.allofthings.com:5003"  //N-MAS REST (Geofencing)
+static NSString *kSocketServer = @"ws://13.76.96.27:8081";      //운영
+//ws://13.76.96.27:8081/A24574936289/69
 
 #else //운영모드
 
@@ -40,6 +42,8 @@ static NSString *kAPIServer = @"https://www.iotbusan.com";      //운영
 //상용서버
 //    #define API_SERVER      @"https://home-api.allofthings.com"       //상용서버
 //    #define NISC_SERVER     @"https://home-api.allofthings.com:5003"  //N-MAS REST (Geofencing)
+static NSString *kSocketServer = @"ws://13.76.96.27:8081";      //운영
+//ws://13.76.96.27:8081/A24574936289/69
 
 #endif
 

+ 35 - 0
OneCable/Classes/Handler/SocketServiceHandler.h

@@ -0,0 +1,35 @@
+//
+//  SocketServiceHandler.h
+//  OneCable
+//
+//  Created by KaRam Kim on 2017. 2. 17..
+//  Copyright © 2017년 ntels. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@protocol SocketServiceHandlerDelegate <NSObject>
+
+@optional
+- (void) socketConnectComplete;
+
+
+@end
+
+
+@interface SocketServiceHandler : NSObject
+
+@property (nonatomic, assign) id<SocketServiceHandlerDelegate> delegate;
+@property (readonly, nonatomic) BOOL isConnected;
+
+@property (nonatomic, strong) NSString* strSocketURL;
+
++ (id)sharedManager;
+
+- (void) connect;
+- (void) disconnect;
+
+- (void) initWithDelegate:(id<SocketServiceHandlerDelegate>) delegate;
+
+
+@end

+ 105 - 0
OneCable/Classes/Handler/SocketServiceHandler.m

@@ -0,0 +1,105 @@
+//
+//  SocketServiceHandler.m
+//  OneCable
+//
+//  Created by KaRam Kim on 2017. 2. 17..
+//  Copyright © 2017년 ntels. All rights reserved.
+//
+
+#import "SocketServiceHandler.h"
+#import <SocketRocket/SRWebSocket.h>
+#import "Definitions.h"
+
+@interface SocketServiceHandler() <SRWebSocketDelegate>
+{
+    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<SocketServiceHandlerDelegate>) delegate
+{
+    [self setDelegate:delegate];
+}
+
+@end

+ 1 - 1
OneCable/Classes/ViewControllers/SignUpScreens/AgreementViewController.h

@@ -51,4 +51,4 @@
 
 @property (weak, nonatomic) IBOutlet CustomLabel *lblGuide;
 
-@end
+@end

+ 1 - 1
OneCable/Classes/ViewControllers/SignUpScreens/AgreementViewController.m

@@ -231,4 +231,4 @@
 }
 
 
-@end
+@end