Socket.IO 1.0の変更点・内部的な話

Socket.IO 1.0の変更点・内部的な話

socket.io 1.0と0.9の比較や内部実装について。 node学園#13

6aea7f3a669da60c1a5744d8b22bd6e6?s=128

Naoyuki Kanezawa

June 23, 2014
Tweet

Transcript

  1. 16.

    // expressのmiddlewareを使ってcookieをパースする var cookieParser = require(‘cookie-parser’)(‘my secret’); io.use(function(socket, next) {

    var req = socket.request; var res = {}; // ダミーのレスポンス cookieParser(req, res, next); }); io.on(‘connection’, function(socket) { console.log(socket.request.cookies); });
  2. 19.

    // クライアント var socket = io(‘http://localhost:3000/foo’); // サーバ io.use(function(socket, next)

    { console.log(‘first’); // 先に実行される next(); }); io.of(‘/foo’).use(function(socket, next) { console.log(‘second’); // 後で実行される next(); });
  3. 22.

    examples // オブジェクトに埋め込み socket.emit(‘event’, {data: new ArrayBuffer(10)}); // 複数バイナリ socket.emit(‘event’,

    [binary1, binary2]); // acknowledge socket.on(‘event’, function(callback) { callback(new Buffer([1, 2, 3])); });
  4. 25.

    バイナリ送信できるトランスポート • ◯ websocket • ◯ XMLHttpRequest Level 2 •

    ☓ 古い仕様のwebsocket • ☓ XMLHttpRequest • ☓ JSONP ※バイナリ送信をサポートしないトランスポートでも、base64エンコードされた文字列 として透過的にデータを送受信できる。
  5. 27.
  6. 45.