Node.js

ios,android開発者たちから「WebRTCはPeer.jsで決まりね!.NTTもSkyWayはじめたよ!」とWebRTCで盛り上がっている。食堂で延々と話を聞か(洗脳)され続けたせいもあって軽く書いてみたくなった。

環境構築(Win7

  1. Node.jsのページからmsiをダウンロード、実行
  2. 管理者Cmd.exeで「npm install peer」 たったこれだけ。
  3. VS for Webの空のプロジェクトで開発環境もOK

取りあえずチャットサーバ作成

  1. WebSockt使うので、管理者Cmd.exeで「npm install ws」
  2. 適当にWebSocketで書きこ
  3. ブラウザで確認IE11でも問題ない。そこでC#からのアプローチに、そこで注意: Win7では既存のSystem.Net.WebSocktesは動きません(例外はく)Win8ならOK!

  4. よってWebSocket4NetをDLしてプロジェクトの参照に加えます。

Formアプリで確認

    private void button1_Click(object sender, EventArgs e)
        {
            if (_ws != null)
            {
                _ws.Open();
                return;
            }
            _ws = new WebSocket(this.textBox1.Text);
            _ws.Opened += _ws_Opened;
            _ws.Closed += _ws_Closed;
            _ws.MessageReceived += _ws_MessageReceived;
            _ws.Open();
        }
    void _ws_MessageReceived(object sender, MessageReceivedEventArgs e)
        {

            Invoke((MethodInvoker)delegate()
            {
                this.listBox1.Items.Add(e.Message);
            });
        }

        void _ws_Closed(object sender, EventArgs e)
        {
            _ws.Close();
            _ws = null;
        }

        void _ws_Opened(object sender, EventArgs e)
        {
            _ws.Send("WebSoket connected");
        }

なんだか簡単にできてしまう。これでいいのか疑問も残るが、この手軽さは素晴らしいどれくらいのコネクションに耐えられるのか試してみたい気もするが今日はここまで、そろそろ本業に戻らないと早く帰れないよ。