gtug girls meetup web socket handson
TRANSCRIPT
もっと効率よくできないか?
● Push するために Pull しまくってる
○ HTTPがもともとそういうものだからしょうがない
● やり取りするメッセージも小さいのに
○ HTTPはもと(ry
● もっとカジュアルに送受信したい
○ (ry
WebSocket を使ってプログラミング
をしてもいいんだけど、、
Q: 先生 WebSocket が繋がりません!
● 非対応ブラウザ● ネットワーク環境● ウイルス対策ソフト● 大人の事情
A: Socket.IO というのがあってだな。
Socket.IO どうよ?
つながりにくい環境でもいい感じに通信してくれる。
あるといいな、があるんですよね。認証とか。
古いブラウザでも動きました!!
色んな言語で使えるのがいい。
みんな使ってたから
作者がイケメン
*意見には個人差があります
Socket.IO を使ってみよう
2, サーバ側の実装
1, サーバに接続するブラウザ側の実装
http://54.250.126.97:3000/ これを作ります。
環境
Node.js のインストール
● 本家インストーラ● nodebrew
ハンズオンマテリアルhttps://github.com/Jxck/socket.io.chat-sample
$ node -v
v0.10.4
$ npm -v
1.2.18 (多少違ってもok)
1. ブラウザ側の実装
// サーバに接続(AWS)var socket = io.connect('http://54.250.126.97:3000/');$(function() { // 送信
$('#ok').on('click', function() { // クリックしたら
var message = $('#message').val(); // 中身を取って
socket.emit('message', message); // サーバに送信
});
// 受信
socket.on('message', function(data) { // 受信したら
var $li = $('<li>', { text: data }); // li を作って
$('#messages').append($li); // ul に追加
});});
起動方法
$ cd socket.io.chat-sample
$ cd handson
$ node server.js
実装したらサーバを起動
(おかしかったらチューターまで)
http://localhost:3000/ にアクセス
2. サーバ側の実装
// Socket.IOvar io = require('socket.io') , io = io.listen(server);
// クライアントが接続してきたあとio.sockets.on('connection', function(socket) { // メッセージを受信したら socket.on('message', function(data) { // 全てのクライアントに送り返す io.sockets.emit('message', data); console.log(data); });});
起動方法
$ cd socket.io.chat-sample
$ cd handson
$ node server.js
実装したらサーバを起動
(おかしかったらチューターまで)
http://localhost:3000/ にアクセス