Unity iOSでのWebSocket


概要

UnityからiOSでのWebSocket用に、使って遊んでみる。

https://github.com/square/SocketRocket


よく見たらSquareだった。あの決済のアレですかね。



HOW TO USE(つかいかた)

悩むところ無かった。


ステップ数的に、

1.DLしてプロジェクトに該当ライブラリ部分を放り込む

2.frameworkを追加

3.ARC設定を調整(必要であれば)

4.Delegateとかをセット

でOK。



DLしてプロジェクトに該当ライブラリ部分を放り込む

下記フォルダをそのままプロジェクトに放り込めばいい感じ。


frameworkを追加

libicucore.dylib

Security.framework

を追加。



ARCを調整

SRWebocket.mに

#if !__has_feature(objc_arc) 

#error SocketRocket muust be compiled with ARC enabled

#endif


があり、ARC無いとこで動かすなカスが!! 的な様相。ちなみにtypoがry


ファイル単体に、 -fobjc-arc を追加して通過。



Delegate

socketを使用するクラスに対して、

<SRWebSocketDelegate>


と、下記メソッドを追加

- (void)webSocketDidOpen:(SRWebSocket *)webSocket{}


- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error{}


- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message{}


- (void)webSocket:(SRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean{}


コード

単純に、 デリゲートをセットして使えばOK。

_webSocket.delegate = nil;

    [_webSocket close];

    

    _webSocket = [[SRWebSocket alloc] initWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"ws://localhost:9000/chat"]]];

    _webSocket.delegate = self;

    

    self.title = @"Opening Connection...";

    [_webSocket open];


以上。