2012-09-09.nagoyapm07
Upcoming SlideShare
Loading in...5
×
 

2012-09-09.nagoyapm07

on

  • 624 views

2012-09-09 Nagoya.pm #7 での資料.Perl で Socket.IO することについて簡単に.

2012-09-09 Nagoya.pm #7 での資料.Perl で Socket.IO することについて簡単に.

Statistics

Views

Total Views
624
Views on SlideShare
624
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

2012-09-09.nagoyapm07 2012-09-09.nagoyapm07 Presentation Transcript

  • Perl + Socket.IO 2012-09-09 Nagoya.pm #7 岩田 享 / issm
  • 大盛況おめでとうございます! 2012-09-09 Nagoya.pm #7
  • あと 2012-09-09 Nagoya.pm #7
  • なごやか Scala #4休んでスミマセン>< 2012-09-09 Nagoya.pm #7
  • アジェンダ自己紹介Socket.IOPerl で Socket.IO応用 1応用 2まとめと課題 2012-09-09 Nagoya.pm #7
  • アジェンダ自己紹介Socket.IOPerl で Socket.IO応用 1応用 2まとめと課題 2012-09-09 Nagoya.pm #7
  • おまえだれよ?岩田 享 / issm(いわた)http://blog.iss.ms/@issm, qr/issmx{,2}/個人事業 とある「商品」を販売 → 発注 → 発送管理 などするためのシステムを開発していたりPerl / JavaScript CoffeeScript 2012-09-09 Nagoya.pm #7
  • 引っ越し! 2012-09-09 Nagoya.pm #7
  • 入院! 2012-09-09 Nagoya.pm #7
  • 夏のイベント参加不可!orz 2012-09-09 Nagoya.pm #7
  • そんな 8月 2012-09-09 Nagoya.pm #7
  • x10くらい x2 2012-09-09 Nagoya.pm #7
  • 本題 2012-09-09 Nagoya.pm #7
  • アジェンダ自己紹介Socket.IOPerl で Socket.IO応用 1応用 2まとめと課題 2012-09-09 Nagoya.pm #7
  • Socket.IOWebSocket 通信なライブラリ http://socket.io/サーバサイド:socket.io node 向けモジュールクライアントサイド:socket.io.js クロスブラウザ(Websocket API, XHR, Flash) 2012-09-09 Nagoya.pm #7
  • Socket.IO[server]var app = ... , io = require(‘socket.io’).listen(app); 2012-09-09 Nagoya.pm #7
  • Socket.IO[server]io.sockets.on( ‘connection’, function(socket){...}); 2012-09-09 Nagoya.pm #7
  • Socket.IO[server]// in ‘connection’ handersocket.emit(‘hello’, {foo: ‘bar’});socket.on( ‘event’, function(msg){ console.log(msg); }); 2012-09-09 Nagoya.pm #7
  • Socket.IO[client]var socket = io.connect(); 2012-09-09 Nagoya.pm #7
  • Socket.IO[client]socket.on( ‘hello’, function(msg){ alert(‘hello’); });socket.emit( ‘event’, { a: ‘hoge: b: [‘fuga’, ‘piyo’] }); 2012-09-09 Nagoya.pm #7
  • アジェンダ自己紹介Socket.IOPerl で Socket.IO応用 1応用 2まとめと課題 2012-09-09 Nagoya.pm #7
  • Perl で Socket.IOPocketIO 元 Plack::Middleware::SocketIO (DEPRECATED!) node の socket.io モジュール非依存 % cpanm PocketIO Webサーバには Twiggy を使う! % plackup -s Twiggy -a app.psgi 2012-09-09 Nagoya.pm #7
  • Perl で Socket.IOSYNOPSIS# app.psgiuse Plack::Builder;use PocketIO;builder { mount ‘/socket.io/’ => PocketIO->new( handler => sub { my ($socket) = @_, ... }, ); mount ‘/’ => sub { my $app = ... };}; 2012-09-09 Nagoya.pm #7
  • Perl で Socket.IOSYNOPSIS# in handlermy ($socket) = @_;$socket->on( event => sub { my ($self, $msg) = @_; use Data::Dumper; warn Dumper $msg; });$socket->emit( ‘hello’, { foo => ‘bar’ } ); 2012-09-09 Nagoya.pm #7
  • Perl で Socket.IOクライアント JavaScript 側 socket.io.js をそのまま使える! 2012-09-09 Nagoya.pm #7
  • アジェンダ自己紹介Socket.IOPerl で Socket.IO応用 1応用 2まとめと課題 2012-09-09 Nagoya.pm #7
  • 応用 1SiTeWiki 自作の Textile 記法による Wiki っぽい何か https://github.com/issm/SiTeWiki 2012-09-09 Nagoya.pm #7
  • 応用 1 2012-09-09 Nagoya.pm #7
  • 応用 1リアルタイムプレビュー(Markdown記法) http://d.hatena.ne.jp/sugyan/ 20110722/1311302687 http://www.songmu.jp/riji/archives/2012/09/ pocketio.html 2012-09-09 Nagoya.pm #7
  • Textile記法でも! 2012-09-09 Nagoya.pm #7
  • 2012-09-09 Nagoya.pm #7
  • デモ 2012-09-09 Nagoya.pm #7
  • アジェンダ自己紹介Socket.IOPerl で Socket.IO応用 1応用 2まとめと課題 2012-09-09 Nagoya.pm #7
  • 応用 2SiTeWiki 自作の Textile 記法による Wiki っぽい何か https://github.com/issm/SiTeWiki データ格納ディレクトリを設定可能 Dropbox共有下においてリモートで編集 2012-09-09 Nagoya.pm #7
  • 応用 2データディレクトリを監視して変更があれば対応するページを開いているクライアントに通知して表示を更新したい! Client Client 監視 ClientEditor Data 変更 2012-09-09 Nagoya.pm #7
  • デモ 2012-09-09 Nagoya.pm #7
  • 応用 2監視ツールの概要 Filesys::Notify::Simple で監視 イベントを emit するスクリプトを呼ぶ Protocol::WebSocket とか使えば Perlでも書けるんだろうけど(ry 2012-09-09 Nagoya.pm #7
  • 応用 2イベント emit スクリプト PhantomJS で WebSocket通信 「データが更新された」イベントを emit 2012-09-09 Nagoya.pm #7
  • 応用 2 はじめての PhantomJS#!/usr/bin/env phantomjsvar args = [];phantom.args.forEach( function (n) { args.push(n) } );var target, paths;target = args.shift();paths = args || [];var page = require(webpage).create();page.open(target, function (status) { page.evaluate(function (paths) { var socket = io.connect(); socket.emit(data_updated, { paths: paths }); }, paths); 2012-09-09 Nagoya.pm #7
  • アジェンダ自己紹介Socket.IOPerl で Socket.IO応用 1応用 2まとめと課題 2012-09-09 Nagoya.pm #7
  • まとめと課題PocketIO で Perl でも WebSocket できるよ!リアルタイムプレビュー的な機能を実装してみた 実際に動くのを見るとやっぱりオモシロイ! 2012-09-09 Nagoya.pm #7
  • まとめと課題WebSocket 通信をnginx 経由でリバースプロキシできない>< HTTP 1.1 における “Upgrade” がどうのこうの nginx_tcp_proxy_module で解決できるらしい https://github.com/yaoweibin/nginx_tcp_proxy_module 2012-09-09 Nagoya.pm #7
  • ご静聴ありがとうございました! 2012-09-09 Nagoya.pm #7
  • Q? 2012-09-09 Nagoya.pm #7