@nObisukeさんの記事を参考にSwiftで人生初のmilkcocoaを使ってまるで、クックパッドのつくれぽみたいなことして今、ハマってる。


#前々からmilkcocoaが気になってた。。。

<a href="http://thebridge.jp/2014/10/milkcocoa">
![スクリーンショット 2014-12-19 1.34.29.png](https://qiita-image-store.s3.amazonaws.com/0/15812/8ca337bd-6a61-6c74-af47-2045a1327610.png "スクリーンショット 2014-12-19 1.34.29.png")
</a>

http://thebridge.jp/2014/10/milkcocoa

<br>

milkcocoaよりも前にリアルタイム通信が行いたいという理由で、
<b>[webRTC](http://ja.wikipedia.org/wiki/WebRTC)</b>
を試みましたが、
<br>
<b>OSSだとサーバーが必要なこと</b>、
<b>敷居が思ってた以上に高かったこと</b>、
<b>WebRTCプラットホームを提供している[tokbox](https://tokbox.com/)のSDKを使ってみるもイマイチよくわからなかったこと</b>
<b>[tokbox](https://tokbox.com/)の無料期間は30日までであること</b>


などの理由で断念。。。

そんな時に[@nObisukeさん](http://qiita.com/n0bisuke)の記事が！

<a href="http://qiita.com/n0bisuke/items/6b04d0a21b8b2c1eeec2">
![スクリーンショット 2014-12-19 1.44.43.png](https://qiita-image-store.s3.amazonaws.com/0/15812/c6dc4eb9-6f5d-d3c8-632b-a558162920c6.png "スクリーンショット 2014-12-19 1.44.43.png")
</a>

http://qiita.com/n0bisuke/items/6b04d0a21b8b2c1eeec2

そしてこの記事の最後に、

![スクリーンショット 2014-12-19 1.45.57.png](https://qiita-image-store.s3.amazonaws.com/0/15812/64447a93-972b-e0bd-43ec-a267f5b09a64.png "スクリーンショット 2014-12-19 1.45.57.png")

を便りにmilkcocoaさんに直談判！

### 以下、メール内容

```
はじめまして。

この度、@n0bisukeさんによるSwiftのアドベントカレンダーにて
MilkcocoaとSwiftの記事を拝見し、私も使用させて頂きたく、
メールを送付させて頂きました、@g08m11と申します。

急な依頼となってはしまいますが、もし、よろしければ
iOS SDKのβ版を使用させて頂けたらと存じます。

お忙しいとは存じますが、ご連絡のほど、宜しくお願いいたします。

以上になります。
宜しくお願いいたします。
```

###その結果、幾つかのお願いがあったものの使用許可を頂くことができました！

(現時点でMilkcocoaはJavascript向けのSDKが公開されていて、Webアプリケーションには活用出来ます。今回はまだ公開されていないSwift用のSDKをβテストな形で使わせて頂きました。)

###長くなりましたが早速、試してみる。

## 環境
 - Mac OS X 10.9
 - Xcode6.1.1
 - Milkcocoa Javascript SDK 0.2.8
 - Milkcocoa iOS テストユーザー(iOS SDKは開発途中なので「テストユーザ用クライアント版」)


## Web側
```tukurepoSample.html
<!doctype html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>simple chat!</title>
    <script src="http://cdn.mlkcca.com/v0.2.8/milkcocoa.js"></script>
    <script>

        var milkcocoa = new MilkCocoa("https://io-ci1s1iu9p.mlkcca.com/");
        var iosDS = milkcocoa.dataStore('ios');

        function clickEvent(){
            iosDS.send({msg:'hello! iOS! I am JS'});
        }

        iosDS.on('send',function(data){
            console.log('receive:',data.value.msg);
        });
    </script>
</head>
<body>
<button name="button" onClick="clickEvent()">send!</button>
</body>
</html>

```

## Swift側

![スクリーンショット 2014-12-19 2.10.48.png](https://qiita-image-store.s3.amazonaws.com/0/15812/dce72bbf-1727-ebbf-4dfb-c2ce0bd473dc.png "スクリーンショット 2014-12-19 2.10.48.png")


![スクリーンショット 2014-12-19 2.10.59.png](https://qiita-image-store.s3.amazonaws.com/0/15812/6c54f221-984e-7d26-767b-9f9eef1c7733.png "スクリーンショット 2014-12-19 2.10.59.png")



![スクリーンショット 2014-12-19 2.11.13.png](https://qiita-image-store.s3.amazonaws.com/0/15812/b3b20a5d-6b8a-8774-a750-48c3af0e1047.png "スクリーンショット 2014-12-19 2.11.13.png")

![スクリーンショット 2014-12-19 2.12.23.png](https://qiita-image-store.s3.amazonaws.com/0/15812/a8b0d8e5-e482-c139-22b0-f25481eda1b4.png "スクリーンショット 2014-12-19 2.12.23.png")



![スクリーンショット 2014-12-19 2.12.31.png](https://qiita-image-store.s3.amazonaws.com/0/15812/db322a75-45e1-7fce-cda7-85326eb555ba.png "スクリーンショット 2014-12-19 2.12.31.png")

```ViewController.swift

import UIKit
import Milkcocoa

class ViewController: UIViewController {
  let milkcocoa = Milkcocoa(url:"https://io-ci1s1iu9p.mlkcca.com")
  
  override func viewDidLoad() {
    super.viewDidLoad()
    let dataStore = milkcocoa.dataStore("ios")
    
    dataStore.on("send", { data in
      println(data.value["msg"].asString!)
    })
    
    dataStore.send(["msg":"hello! JS! I am iOS"])
  }
  
  override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
  }
  
}
```

## 実行結果

現在はエラー中の状態です。。。

![スクリーンショット 2014-12-19 13.58.20.png](https://qiita-image-store.s3.amazonaws.com/0/15812/177bc131-a3c1-9107-382a-95eb3211280c.png "スクリーンショット 2014-12-19 13.58.20.png")

![スクリーンショット 2014-12-19 13.58.28.png](https://qiita-image-store.s3.amazonaws.com/0/15812/9acbd03e-9364-07ec-c640-eafd3365db19.png "スクリーンショット 2014-12-19 13.58.28.png")

問題が解消した際には更新していこうと思います。
おそらく僕のXcodeの設定が悪いのかなと。

## 現在の状態

```tukurepo-Bridging-Header.h

#import "Milkcocoa-Swift.h"
#import "Milkcocoa.h"

```

![スクリーンショット 2014-12-19 14.01.30.png](https://qiita-image-store.s3.amazonaws.com/0/15812/dd8c4494-a82c-ff7b-440d-12d4fa4e00b1.png "スクリーンショット 2014-12-19 14.01.30.png")

<b>アドベントカレンダーに似つかわしくない内容で大変、申し訳ありませんが、ご助言お待ちしております!</b>

## 追記

こちらはiPhoneシュミレータではなく、実機だと動くとの回答を
milkcocoaさんから頂きました。
これからSwiftでmilkcocoaを利用される方は実機で確認すると問題ないかと
思います。