– オブラブ

> 当サイトは … ソフトウェア開発に関する技術について実践、研究、発表するグループ、「オブラブ」のページです。 XP及びモデリング、PFについてのコミュニティや、ドキュメント、フリーソフトウェアで構成されています。

リアルタイムWebメモ

元記事:

リアルタイムWebを構築しやすくする「Socket.IO」とは (1/4):CodeZine.

## リアルタイムWeb技術いろいろ

### 1.HTTPやJSONPによるポーリング

– 最もシンプル、あらゆる環境で使える
– AjaxによるHTTPリクエストを繰り返しているだけ(定期的にチェックしてるだけ)
– ネットワーク帯域とサーバリソースを無駄に消費してしまう
– スケールしない

### 2. Comet(HTTP StreamingやHTTP Long polling)

> クライアントから送信されてきたHTTPリクエストをサーバが維持し、サーバーからPUSHすべきイベントの発生(もしくはリクエストのタイムアウト)を契機にHTTPレスポンスを返す

– サーバがブラウザとのHTTPコネクションを維持
– イベント発生時に即座にサーバからブラウザへデータをPUSH

### 3. プラグインによるSocket接続

– Adobe FlashやMicrosoft Silverlightなどを使った接続
– リアルタイム性が高くバイナリデータの送受信も可能
– 1、2のようにHTTPプロトコルの制約をうけないため、無駄な再接続もなく効率的
– 独自ポートで通信するためにネットワーク経路上にプロキシやファイアウォールがあると接続できない

### 4. WebSocket

> RFC6455として規格化されている「双方向通信用」のプロトコル

– 3と同様、接続が確立した後は全二重通信を行うことができ、バイナリデータの送受信も可能
– クライアント側のプログラムもJavaScriptで記述することができる
– ポートもHTTPやHTTPSで利用する80や443に相乗りでき、ファイアウォールの制約をうけない
– モダンブラウザでないと機能しない
– 要暗号化

## Socket.IOとは

> 「リアルタイムWeb技術の実装方式を隠蔽し、すべてのブラウザ・モバイルデバイスでリアルタイム通信を可能とすること」を目指して開発されている、node.js用サーバ側ライブラリとブラウザ用JavaScriptライブラリのセット

– 現バージョンでは、1〜4の方法に対応しており、Socket.IO APIで透過的に利用可能
– IE5.5といった古いブラウザからiPhone/Androidのブラウザまで、幅広いブラウザでリアルタイム双方向通信が可能
– 拡張され、JavaScript以外の言語でもSocket.IO APIが利用できるようになってきている

Do Not Touch

![](http://img.2244.jp/2013-04-18_095557_screencapture_2013-04-18_9.55.44.png)

オランダのロックバンドlightlightのMV。

> ビデオを視聴者がアクセスして再生するたびに、彼らのJavaScriptコードが動き出して視聴者のマウスカーソルの位置をリアルタイムで記録する
> ビデオと技術的工夫は、オランダのアーチストRoel Woutersと彼のスタジオMonikerの仕事らしい

女性のシーン、みんなハケて善意的なもの感じるw

Do Not Touch.

Google Spreadsheet のスクリプト機能が便利すぎる! ガントチャートもどきの自動生成やToDoリスト管理、そしてモテプログラミングまで – UEI shi3zの日記

おぉー、ガントチャートスクリプトとかメールおくるスクリプトとか。いい記事。

Evernote、v5になってから検索の挙動微妙な気がして、たんだけど、
Alfredv2用のこのプラグインいれたらだいぶ楽になった。最高。

[Evernote 4.5: Search and Add within Alfred (now with direct paste) – Share your Workflows – Alfred App Community Forum](http://www.alfredforum.com/topic/840-evernote-45-search-and-add-within-alfred-now-with-direct-paste/)