SlideShare una empresa de Scribd logo
1 de 58
Descargar para leer sin conexión
WebSocket  +  Node.js
でつくるチャットアプリ
   2011/8/28  第2回  プログラミング勉強会
                kadoppe




               1
⾃自⼰己紹介

!  名前:kadoppe
   !  Twitter  twitter.com/kadoppe
   !  Blog  www.kadoppe.net
!  職業:プログラマ(iOS,  Web,  etc.)
!  HTML5-‐‑‒West.jp  コアメンバー
! about.me/kadoppe

                    2
質問
あなたとWebSocketの関係



       3
◆アジェンダ◆

! WebSocketとは
! WebSocketでできること
! WebSocketでかわること
!  ブラウザ・サーバ対応状況
! WebSocket  +  Node.jsでつくるチャッ
  トアプリ

                4
◆アジェンダ◆

! WebSocketとは
! WebSocketでできること
! WebSocketでかわること
!  ブラウザ・サーバ対応状況
! WebSocket  +  Node.jsでつくるチャッ
  トアプリ

                5
WebSocketとは?

!  Webブラウザ・サーバ間で双⽅方向通信
   を実現するためのプロトコル
!  元々はHTML5の仕様の⼀一部
 !  後に切切り離離されて独⽴立立




              6
双⽅方向通信
!  サーバ・クライアントの両⽅方からデー
   タ送信可能




         双⽅方向通信




           7
プロトコル概要(さらっと)

!  TCPの上で動作(not  HTTP)
 !   ※⽣生のTCPパケットを送信できるわけではない

!  80  or  443番ポートを使⽤用
!  UTF-‐‑‒8の⽂文字列列  or  バイナリデータを送
   信可能
!  Webプロキシを通過可能

                8
◆アジェンダ◆

! WebSocketとは
! WebSocketでできること
! WebSocketでかわること
!  ブラウザ・サーバ対応状況
! WebSocket  +  Node.jsでつくるチャッ
  トアプリ

                9
リアルタイムWebの実現

!  双⽅方向通信により実現
!  リアルタイムWebの例例
   !  チャット
   !  ホワイトボード共有
   !  オンライン格闘ゲーム
   !  ネット電話
   !  テレビ会議
            10
WebSocket  =  リアルタイムWeb
    を実現するための技術




           11
でも・・・



  12
昔からリアルタイムWebって
    あったよね?



      13
◆アジェンダ◆

! WebSocketとは
! WebSocketでできること
! WebSocketでかわること
!  ブラウザ・サーバ対応状況
! WebSocket  +  Node.jsでつくるチャッ
  トアプリ

                14
従来の双⽅方向通信技術

!  代表的なもの
   ! XMLHttpRequestによるPolling
   !  Comet(Long  Polling)
                     ざっくりまとめると



     HTTPを使ってリアルタイムWeb
          を実現する技術


                15
HTTP  vs.  WebSocket



         16
HTTPを使う⽅方式
!  複数のHTTPコネクションを使って通信




        HTTPコネクション




            17
HTTPを使う⽅方式の問題点

!  複数のHTTPコネクションを⽣生成
   !  サーバの負荷が⾼高くなる
   !  トラフィックが増える



 サーバスペック、通信回線が貧弱な環境
 では安定したサービスが提供しにくい


           18
WebSocket
!  単⼀一のTCPコネクションで双⽅方向通信




         TCPコネクション




            19
WebSocketの特徴

!  単⼀一のコネクション上で通信
   !  サーバの負荷が低くなる
   !  トラフィックが減る



 従来よりも効率率率的・安定した双⽅方向通信
       を実現可能!


           20
Demo
! WebSocket  Comparison  with  http  |  Ericsson  Labs  




  http://www.youtube.com/watch?v=Z897fkPn7Rw

                             21
◆アジェンダ◆

! WebSocketとは
! WebSocketでできること
! WebSocketでかわること
!  ブラウザ・サーバ対応状況
! WebSocket  +  Node.jsでつくるチャッ
  トアプリ

                22
WebSocketの標準化

!   The  WebSocket  Protocol
  !   通信プロトコルを定義
  !   IETFにより策定中(2011/7/11  Last  Call)

!   The  WebSocket  API
  !   ブラウザから利利⽤用するJavaScript  APIを定義
  !   W3Cにより策定中



                          23
ブラウザ対応状況  (PC)
プロトコル              IE       Firefox        Chrome   Safari   Opera

 hixie-‐‑‒75                                 4      5.0.0

hixie-‐‑‒76,  
                            4(無効)            6      5.0.1    11(無効)
hybi-‐‑‒00

                                6
 hybi-‐‑‒07
                           (Prefix付き)

                 HTML5  
 hybi-‐‑‒09
                  Labs

 hybi-‐‑‒10                     7
                                             14
(Last  Call)               (Prefix付き)

                            ※プロトコルの各リビジョン間の互換性はない。

                                      24
ブラウザ対応状況  (モバイル)


プロトコル            iOS        Android      BrackBerry

                       デフォルト⾮非対応
hixie-‐‑‒76,  
                 4.2     Firefox  7         OS7
hybi-‐‑‒00
                       Opera  mobile  




                       25
サーバ対応状況
!   Node.js
    ! Socket.io
    !   Node  Websocket  Server  (hybi-‐‑‒00)
    ! WebSocket-‐‑‒Node  (hybi-‐‑‒07,  hybi-‐‑‒09,  hybi-‐‑‒10)
!   Java
    !   Jetty  (hixie-‐‑‒75,  hybi-‐‑‒00,  hybi-‐‑‒07)
    ! CometD
!   PHP
    ! phpwebsocket
!   Python
    ! pywebsocket  (hixie-‐‑‒75,  hybi-‐‑‒00,  hybi-‐‑‒10)
!   その他多数


                                         26
◆アジェンダ◆

! WebSocketとは
! WebSocketでできること
! WebSocketでかわること
!  ブラウザ・サーバ対応状況
! WebSocket  +  Node.jsでつくるチャッ
  トアプリ

                27
技術紹介  
     +  
プチLive  Coding


      28
つくるもの
!  シンプルなチャットアプリ
!  ⽂文字⼊入⼒力力欄
!  Sendボタン
!  チャットログ




               29
つかうもの

!  ブラウザサイド
   !  Google  Chrome  13
   ! jQuery  1.6.1
!  サーバサイド
   ! Node.js  v0.4.10
   !   Express  –  Webフレームワーク


                    30
Node.js

!  サーバサイドJavaScript実装のひとつ
!  GoogleのJavaScriptエンジン「V8」上
   で動作
!  特徴
   !  シングルスレッド
   !  イベントループモデル
   !  ノンブロッキングI/O
              31
構成

!  ブラウザサイド
   ! chat.html
   ! chat.js
!  サーバサイド
   ! app.js



                 32
3パターンつくります
!   パターンA
    !   Node  WebSocket  Server  を使⽤用
    !   素のWebSocket  APIを使ったコーディングが楽しめます

!   パターンB
    ! Socket.IO  を使⽤用
    !   クロスブラウザ対応のリアルタイムWebアプリがとっても簡
        単に作れます

!   パターンC
    !   Pusher  を使⽤用
    ! WebSocketが動作するサーバが⽤用意できない⼈人でも
        WebSocketを使ったWebアプリが公開できます

                    33
お知らせ・おことわり
!   ひな形をベースに書いていきます。
 !   必要なモジュールなどもインストール済

!   詳しい説明は公式ドキュメントにおまかせ!

!   完成版のソースコードはGitHubにおいてあり
    ます。
 https://github.com/kadoppe/html5nado-‐‑‒websocket




                          34
パターンA

!  Node  WebSocket  Server
   ! WebSocket  プロトコルのサーバサイ
     ド実装のひとつ
   ! Node.jsのモジュールとして提供

 http://static.brandedcode.com/nws-‐‑‒docs/




                            35
システム構成


          WebSocket
ブラウザ


   WebSocket            Node  
      API             WebSocket
                       Server




                 36
サーバサイド
!   サーバインスタンスの⽣生成・起動
// モジュール読み込み!
var ws = require(“websocket-server”); !
!
var server = ws.createServer();!
server.listen(80); // 80番ポートで待機!

!   イベントハンドラの登録・データ送信
server.addListener("connection", function(connection){ !
  !connection.addListener("message", function(msg){ !
  ! !// 接続している全クライアントにデータ送信 ! !!
  ! !server.broadcast(msg);!
  !}); !
});!

                          37
ブラウザサイド  (WebSocket  API)

! WebSocketインスタンスの⽣生成
var ws = new WebSocket(“ws://example.com/chat/”);!


!   イベントハンドラの登録
ws.onopen = function() {};!
ws.onclose = function() {};!
ws.onmessage = function() {};!
ws.onerror = function() {};!

!   データ送信・切切断
ws.send(message);!
ws.close();!


                          38
パターンA  開発スタート!



      39
パターンA  開発完了了(?)



       40
気づいたこと

!   対応ブラウザが少ない
    !   IEでは使えない

!   メッセージ受信時のイベントが  onmessage  
    のみ  (WebSocket  API)
 !   メッセージの種類が増えたときにコードの
     分岐が増えそう



               41
パターンB
! Socket.IO
  !  クロスブラウザ環境で双⽅方向通信を実現
     するためのNode.jsモジュール
  !  ブラウザにより通信⽅方式を⾃自動切切替
   !   IE5.5以降降のブラウザに対応
 !  カスタムイベントに対応

 http://socket.io/


                     42
システム構成


             WebSocket
ブラウザ


        Socket.IO    Socket.IO
       クライアント
       ライブラリ




                43
サーバサイド
!   サーバインスタンスの⽣生成・起動
var io = require(‘socket.io’).listen(80)!
!
!
!   イベントハンドラの登録・データ送信
io.sockets.on('connection', function (socket) {

  !socket.on(‘message’, function(message) {!
  ! !// 接続している全クライアントにデータ送信!
  ! !io.sockets.send(message);!
  !});

});!
!



                          44
ブラウザサイド
!   ライブラリの読み込み
<script src="/socket.io/socket.io.js"></script>!
!

! Socket.IOインスタンスの⽣生成
var socket = io.connect(‘ws://example.com’);!


!   イベントハンドラの登録・データ送信
socket.on(’message', function (data) {!
  !// ...

  !socket.send(message);!
});

!
                          45
パターンB  開発スタート!



      46
パターンB  開発完了了(?)



       47
気づいたこと

!  素晴らしい
   !  対応ブラウザが多い
!  でも・・・
   ! WebSocketが使えないサーバ環境も
     存在
  !   例例)Heroku


                  48
パターンC
!   Pusher
    ! WebSocketサーバホスティングサービス
   !   20コネクション、1⽇日10万メッセージまでなら
       無料料
 ! WebSocketが利利⽤用できないブラウザでは
   Flash  Socketに⾃自動切切替
 !   サーバからのPUSH通信のみがWebSocket  

 http://pusher.com/

                      49
システム構成

               WebSocket
       ブラウザ                  Pusher

              クライアント
               ライブラリ


HTTP  POST                      REST  API

                Node.js
                サーバ
                            pusher
                           モジュール
                           (⾮非公式)
                  50
サーバサイド
!   Pusherインスタンスの⽣生成・設定
var Pusher = require('pusher');!
var pusher = new Pusher({!
  !appId: ‘YOUR_APP_ID’, // Pusherアカウントの各種情報!
  !appKey: 'YOUR_APP_KEY',!
  !secret: 'YOUR_APP_SECRET'!
});!
var channel = pusher.channel(‘chat’); // チャンネル設定!
!

!   Pusherへのデータ送信
channel.trigger('message', data);!
!
                        ※  https://github.com/fabrik42/pusher
                              で公開されているモジュールを使⽤用

                            51
ブラウザサイド
!   クライアントライブラリの読み込み
<script src=“http://js.pusherapp.com/1.8/
pusher.min.js"></script>!
!
!   Pusherインスタンスの⽣生成・設定
var pusher = new Pusher(YOUR_APP_KEY);!
var channel = pusher.subscribe('chat');!

!   イベントハンドラの登録
channel.bind('message', function(data) {!
  !//!
});!



                          52
パターンC  開発スタート!



      53
パターンC  開発完了了(?)



       54
気づいたこと

!  ホスティングできるのは魅⼒力力
!  クライアントからのデータ送信に時間
   がかかる
   !  アプリケーションが配備されている
      サーバを⼀一旦を経由するため



           55
まとめ
! WebSocket
  !  リアルタイムWebを実現するためのプ
     ロトコル
  !  従来の⽅方式よりも効率率率的な通信が⾏行行える
! Node.js  +  各種サービス・モジュールを
  使うことで簡単にリアルタイムWebアプ
  リが開発可能
  !  Letʼ’s  try!!

             56
参考資料料

!  The  WebSocket  protocol
 http://tools.ietf.org/html/draft-‐‑‒ietf-‐‑‒hybi-‐‑‒
 thewebsocketprotocol-‐‑‒10


!  The  WebSocket  API
 http://dev.w3.org/html5/websockets/




                                       57
ご清聴ありがとうございました。




      58

Más contenido relacionado

La actualidad más candente

개발자와 기업을 잇는 Developer Relations(full.ver).pdf
개발자와 기업을 잇는 Developer Relations(full.ver).pdf개발자와 기업을 잇는 Developer Relations(full.ver).pdf
개발자와 기업을 잇는 Developer Relations(full.ver).pdf은옥 조
 
PayPal Risk Platform High Performance Practice
PayPal Risk Platform High Performance PracticePayPal Risk Platform High Performance Practice
PayPal Risk Platform High Performance PracticeBrian Ling
 
UX Research no iFood
UX Research no iFoodUX Research no iFood
UX Research no iFoodMergo
 
Novaon Comm Credential 2022
Novaon Comm Credential 2022Novaon Comm Credential 2022
Novaon Comm Credential 2022ThuanTran105
 
全面預算管理
全面預算管理全面預算管理
全面預算管理ppen
 
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所Ryusuke Kimura
 
EECS 441 Company Presentation Zenly
EECS 441 Company Presentation ZenlyEECS 441 Company Presentation Zenly
EECS 441 Company Presentation ZenlyHongyangWang5
 
User story mapping TACO
User story mapping TACOUser story mapping TACO
User story mapping TACOAlvinTian2
 
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃうフレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう株式会社オプト 仙台ラボラトリ
 
@Iuk comp mediatoolkit_jan20
@Iuk comp mediatoolkit_jan20@Iuk comp mediatoolkit_jan20
@Iuk comp mediatoolkit_jan20JulieErvine
 
MSBuild + Git + Jenkins
MSBuild + Git + JenkinsMSBuild + Git + Jenkins
MSBuild + Git + Jenkins선협 이
 
Exploring Service Design: User Experience Beyond the Screen
Exploring Service Design: User Experience Beyond the ScreenExploring Service Design: User Experience Beyond the Screen
Exploring Service Design: User Experience Beyond the ScreenAriel van Spronsen
 
​『함수형 반응형 프로그래밍』 맛보기
​『함수형 반응형 프로그래밍』 맛보기​『함수형 반응형 프로그래밍』 맛보기
​『함수형 반응형 프로그래밍』 맛보기복연 이
 
Agile Tour 2019 - REX AXA France - Event Storming - 3 amigos
Agile Tour 2019 - REX AXA France - Event Storming - 3 amigosAgile Tour 2019 - REX AXA France - Event Storming - 3 amigos
Agile Tour 2019 - REX AXA France - Event Storming - 3 amigosEmilie-Anne GUERCH
 
One Page Blockchain Theme Proposal For Distributed Ledger Presentation Report...
One Page Blockchain Theme Proposal For Distributed Ledger Presentation Report...One Page Blockchain Theme Proposal For Distributed Ledger Presentation Report...
One Page Blockchain Theme Proposal For Distributed Ledger Presentation Report...SlideTeam
 
Verizon Data Breach Digest 2016
Verizon Data Breach Digest 2016Verizon Data Breach Digest 2016
Verizon Data Breach Digest 2016Ryan Carleton
 

La actualidad más candente (16)

개발자와 기업을 잇는 Developer Relations(full.ver).pdf
개발자와 기업을 잇는 Developer Relations(full.ver).pdf개발자와 기업을 잇는 Developer Relations(full.ver).pdf
개발자와 기업을 잇는 Developer Relations(full.ver).pdf
 
PayPal Risk Platform High Performance Practice
PayPal Risk Platform High Performance PracticePayPal Risk Platform High Performance Practice
PayPal Risk Platform High Performance Practice
 
UX Research no iFood
UX Research no iFoodUX Research no iFood
UX Research no iFood
 
Novaon Comm Credential 2022
Novaon Comm Credential 2022Novaon Comm Credential 2022
Novaon Comm Credential 2022
 
全面預算管理
全面預算管理全面預算管理
全面預算管理
 
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所
甘酸っぱいGCPレガシーApp Engine python2からCloud Runへの移行の勘所
 
EECS 441 Company Presentation Zenly
EECS 441 Company Presentation ZenlyEECS 441 Company Presentation Zenly
EECS 441 Company Presentation Zenly
 
User story mapping TACO
User story mapping TACOUser story mapping TACO
User story mapping TACO
 
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃうフレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
 
@Iuk comp mediatoolkit_jan20
@Iuk comp mediatoolkit_jan20@Iuk comp mediatoolkit_jan20
@Iuk comp mediatoolkit_jan20
 
MSBuild + Git + Jenkins
MSBuild + Git + JenkinsMSBuild + Git + Jenkins
MSBuild + Git + Jenkins
 
Exploring Service Design: User Experience Beyond the Screen
Exploring Service Design: User Experience Beyond the ScreenExploring Service Design: User Experience Beyond the Screen
Exploring Service Design: User Experience Beyond the Screen
 
​『함수형 반응형 프로그래밍』 맛보기
​『함수형 반응형 프로그래밍』 맛보기​『함수형 반응형 프로그래밍』 맛보기
​『함수형 반응형 프로그래밍』 맛보기
 
Agile Tour 2019 - REX AXA France - Event Storming - 3 amigos
Agile Tour 2019 - REX AXA France - Event Storming - 3 amigosAgile Tour 2019 - REX AXA France - Event Storming - 3 amigos
Agile Tour 2019 - REX AXA France - Event Storming - 3 amigos
 
One Page Blockchain Theme Proposal For Distributed Ledger Presentation Report...
One Page Blockchain Theme Proposal For Distributed Ledger Presentation Report...One Page Blockchain Theme Proposal For Distributed Ledger Presentation Report...
One Page Blockchain Theme Proposal For Distributed Ledger Presentation Report...
 
Verizon Data Breach Digest 2016
Verizon Data Breach Digest 2016Verizon Data Breach Digest 2016
Verizon Data Breach Digest 2016
 

Similar a WebSocket + Node.jsでつくるチャットアプリ

PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketKazuhiro Hara
 
これから利用拡大?WebSocket
これから利用拡大?WebSocketこれから利用拡大?WebSocket
これから利用拡大?WebSocketAdvancedTechNight
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?Daichi Isami
 
120512 metro styleapp_javascript
120512 metro styleapp_javascript120512 metro styleapp_javascript
120512 metro styleapp_javascriptTakayoshi Tanaka
 
JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要Shumpei Shiraishi
 
Html5, Web Applications 2
Html5, Web Applications 2Html5, Web Applications 2
Html5, Web Applications 2totty jp
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるdavid9142
 
websocket-survery
websocket-surverywebsocket-survery
websocket-surveryhogemaru_
 
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフラインWebフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフラインShumpei Shiraishi
 
HTML5-pronama-study
HTML5-pronama-studyHTML5-pronama-study
HTML5-pronama-studyNaoya Inada
 
Chromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそうChromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそうmganeko
 
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)崇之 清水
 
Vitochaを用いた Jail+VIMAGE Webインターフェイス
Vitochaを用いた Jail+VIMAGE WebインターフェイスVitochaを用いた Jail+VIMAGE Webインターフェイス
Vitochaを用いた Jail+VIMAGE Webインターフェイスshutingrz
 
Firefox OS and Web server
Firefox OS and Web serverFirefox OS and Web server
Firefox OS and Web serverTomoaki Konno
 
OSC 2010 Tokyo/Fall MSセッション
OSC 2010 Tokyo/Fall MSセッションOSC 2010 Tokyo/Fall MSセッション
OSC 2010 Tokyo/Fall MSセッションMasaki Takeda
 
HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向Shumpei Shiraishi
 
Kilimanjaro Event
Kilimanjaro EventKilimanjaro Event
Kilimanjaro Eventdynamis
 
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]Aya Tokura
 

Similar a WebSocket + Node.jsでつくるチャットアプリ (20)

AndroidでWebSocket
AndroidでWebSocketAndroidでWebSocket
AndroidでWebSocket
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocket
 
これから利用拡大?WebSocket
これから利用拡大?WebSocketこれから利用拡大?WebSocket
これから利用拡大?WebSocket
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?
 
120512 metro styleapp_javascript
120512 metro styleapp_javascript120512 metro styleapp_javascript
120512 metro styleapp_javascript
 
JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要
 
Html5, Web Applications 2
Html5, Web Applications 2Html5, Web Applications 2
Html5, Web Applications 2
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
 
websocket-survery
websocket-surverywebsocket-survery
websocket-survery
 
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフラインWebフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
 
HTML5-pronama-study
HTML5-pronama-studyHTML5-pronama-study
HTML5-pronama-study
 
Chromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそうChromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそう
 
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
 
Vitochaを用いた Jail+VIMAGE Webインターフェイス
Vitochaを用いた Jail+VIMAGE WebインターフェイスVitochaを用いた Jail+VIMAGE Webインターフェイス
Vitochaを用いた Jail+VIMAGE Webインターフェイス
 
Firefox OS and Web server
Firefox OS and Web serverFirefox OS and Web server
Firefox OS and Web server
 
OSC 2010 Tokyo/Fall MSセッション
OSC 2010 Tokyo/Fall MSセッションOSC 2010 Tokyo/Fall MSセッション
OSC 2010 Tokyo/Fall MSセッション
 
HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向
 
Kilimanjaro Event
Kilimanjaro EventKilimanjaro Event
Kilimanjaro Event
 
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
 

Más de Kohei Kadowaki

Pebble + JavaScriptでつくるスマートウォッチアプリ
Pebble + JavaScriptでつくるスマートウォッチアプリPebble + JavaScriptでつくるスマートウォッチアプリ
Pebble + JavaScriptでつくるスマートウォッチアプリKohei Kadowaki
 
Firefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみたFirefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみたKohei Kadowaki
 
Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策Kohei Kadowaki
 
Webでもできるデータビジュアライゼーション
WebでもできるデータビジュアライゼーションWebでもできるデータビジュアライゼーション
WebでもできるデータビジュアライゼーションKohei Kadowaki
 
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門Kohei Kadowaki
 
D3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーションD3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーションKohei Kadowaki
 
プログラマーのお仕事
プログラマーのお仕事プログラマーのお仕事
プログラマーのお仕事Kohei Kadowaki
 
5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめKohei Kadowaki
 
SVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーションSVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーションKohei Kadowaki
 
UnityでつくるはじめてのPONG
UnityでつくるはじめてのPONGUnityでつくるはじめてのPONG
UnityでつくるはじめてのPONGKohei Kadowaki
 
インラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみるインラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみるKohei Kadowaki
 
ShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみKohei Kadowaki
 
d3jsではじめるデータビジュアライゼーション入門
d3jsではじめるデータビジュアライゼーション入門d3jsではじめるデータビジュアライゼーション入門
d3jsではじめるデータビジュアライゼーション入門Kohei Kadowaki
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたKohei Kadowaki
 
WebSocketことはじめ
WebSocketことはじめWebSocketことはじめ
WebSocketことはじめKohei Kadowaki
 

Más de Kohei Kadowaki (15)

Pebble + JavaScriptでつくるスマートウォッチアプリ
Pebble + JavaScriptでつくるスマートウォッチアプリPebble + JavaScriptでつくるスマートウォッチアプリ
Pebble + JavaScriptでつくるスマートウォッチアプリ
 
Firefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみたFirefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみた
 
Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策
 
Webでもできるデータビジュアライゼーション
WebでもできるデータビジュアライゼーションWebでもできるデータビジュアライゼーション
Webでもできるデータビジュアライゼーション
 
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
 
D3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーションD3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーション
 
プログラマーのお仕事
プログラマーのお仕事プログラマーのお仕事
プログラマーのお仕事
 
5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ
 
SVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーションSVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーション
 
UnityでつくるはじめてのPONG
UnityでつくるはじめてのPONGUnityでつくるはじめてのPONG
UnityでつくるはじめてのPONG
 
インラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみるインラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみる
 
ShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみ
 
d3jsではじめるデータビジュアライゼーション入門
d3jsではじめるデータビジュアライゼーション入門d3jsではじめるデータビジュアライゼーション入門
d3jsではじめるデータビジュアライゼーション入門
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
 
WebSocketことはじめ
WebSocketことはじめWebSocketことはじめ
WebSocketことはじめ
 

Último

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Último (9)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

WebSocket + Node.jsでつくるチャットアプリ