SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始めtetsusat
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가NAVER D2
 
JAMstackは眠らない
JAMstackは眠らないJAMstackは眠らない
JAMstackは眠らないKuniyoshi Tone
 
Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep DiveDocker, Inc.
 
すごく分かるwarden
すごく分かるwardenすごく分かるwarden
すごく分かるwardeni_yudai
 
PHP, Under The Hood - DPC
PHP, Under The Hood - DPCPHP, Under The Hood - DPC
PHP, Under The Hood - DPCAnthony Ferrara
 
Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る wata2ki
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行gree_tech
 
Web hdfs and httpfs
Web hdfs and httpfsWeb hdfs and httpfs
Web hdfs and httpfswchevreuil
 
Docker Swarm For High Availability | Docker Tutorial | DevOps Tutorial | Edureka
Docker Swarm For High Availability | Docker Tutorial | DevOps Tutorial | EdurekaDocker Swarm For High Availability | Docker Tutorial | DevOps Tutorial | Edureka
Docker Swarm For High Availability | Docker Tutorial | DevOps Tutorial | EdurekaEdureka!
 
Windows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみるWindows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみるKazuki Takai
 
OVF, OVA, ovftool
OVF, OVA, ovftoolOVF, OVA, ovftool
OVF, OVA, ovftooltshiroyama
 
Guide to alfresco monitoring
Guide to alfresco monitoringGuide to alfresco monitoring
Guide to alfresco monitoringMiguel Rodriguez
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介VirtualTech Japan Inc.
 
Kernel Recipes 2017: Using Linux perf at Netflix
Kernel Recipes 2017: Using Linux perf at NetflixKernel Recipes 2017: Using Linux perf at Netflix
Kernel Recipes 2017: Using Linux perf at NetflixBrendan Gregg
 
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 日本マイクロソフト株式会社
 
ClojureではじめるSTM入門
ClojureではじめるSTM入門ClojureではじめるSTM入門
ClojureではじめるSTM入門sohta
 

Tendances (20)

FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
 
JAMstackは眠らない
JAMstackは眠らないJAMstackは眠らない
JAMstackは眠らない
 
Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep Dive
 
すごく分かるwarden
すごく分かるwardenすごく分かるwarden
すごく分かるwarden
 
PHP, Under The Hood - DPC
PHP, Under The Hood - DPCPHP, Under The Hood - DPC
PHP, Under The Hood - DPC
 
perfを使ったPostgreSQLの解析(前編)
perfを使ったPostgreSQLの解析(前編)perfを使ったPostgreSQLの解析(前編)
perfを使ったPostgreSQLの解析(前編)
 
Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る 
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
 
Performance tests with Gatling
Performance tests with GatlingPerformance tests with Gatling
Performance tests with Gatling
 
Web hdfs and httpfs
Web hdfs and httpfsWeb hdfs and httpfs
Web hdfs and httpfs
 
Docker Swarm For High Availability | Docker Tutorial | DevOps Tutorial | Edureka
Docker Swarm For High Availability | Docker Tutorial | DevOps Tutorial | EdurekaDocker Swarm For High Availability | Docker Tutorial | DevOps Tutorial | Edureka
Docker Swarm For High Availability | Docker Tutorial | DevOps Tutorial | Edureka
 
Windows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみるWindows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみる
 
OVF, OVA, ovftool
OVF, OVA, ovftoolOVF, OVA, ovftool
OVF, OVA, ovftool
 
【さくらのクラウド】DNSアプライアンス導入ガイド
【さくらのクラウド】DNSアプライアンス導入ガイド【さくらのクラウド】DNSアプライアンス導入ガイド
【さくらのクラウド】DNSアプライアンス導入ガイド
 
Guide to alfresco monitoring
Guide to alfresco monitoringGuide to alfresco monitoring
Guide to alfresco monitoring
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
 
Kernel Recipes 2017: Using Linux perf at Netflix
Kernel Recipes 2017: Using Linux perf at NetflixKernel Recipes 2017: Using Linux perf at Netflix
Kernel Recipes 2017: Using Linux perf at Netflix
 
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
 
ClojureではじめるSTM入門
ClojureではじめるSTM入門ClojureではじめるSTM入門
ClojureではじめるSTM入門
 

Similaire à 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
 

Similaire à 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 [マイクロソフトの魅せるセンサー×クラウド技術]
 

Plus 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
 

Plus 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ことはじめ
 

Dernier

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Dernier (12)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

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