タグ

ブックマーク / memo.yomukaku.net (4)

  • Socket.io 0.7の謎の新プロパティ「store」を試す。

    socket.io 0.7からioオブジェクトにstoreというプロパティが追加されていました。ドキュメントには何も書かれていませんが、ソースのそこかしこにstoreが使われています。どうも、io.storeは接続中の全socketの情報やroomsの情報、どのroomにどのソケットが繋がっているか?といった情報を管理しているようです。分かる範囲で詳しく見てみます。 node.jsとexpressなりを使用して、socket.ioのサーバーを起動してください。サーバー側のコードの中に以下のように追加して、io.storeが何者であるか観察してみます。io.sockets.on('connection', function(socket) { ... console.log(io.store); console.log(io.store.clients(function(ids) { con

    yamadar
    yamadar 2011/07/20
    io.storeには色々な情報が入っている。全 socket の情報を持つ clientsMap、各 room 情報を持つ rooms、そして全体を統括する manager など。manager のログ機構とか使えそうだな。
  • Socket.io 0.7のnamespaceでundefined function .of()にハマらない方法

    Socket.io 0.7からnamespaceあるいはroomといった機能が使えます。同時に複数のsocketを使えるので、chatに類するアプリでグループ毎に異なる部屋を設けるような機能を簡単に実現できます。ところが、namespace機能を使って例えば「chat」という部屋をつくろうとすると「undefined function .of()」とか「Uncaught TypeError: Object # has no method 'of'」とか叱られます。Socket.ioの公式サイトのチュートリアルどうりにやっているはずなのに?期待通りにsocket.ioのnamespaceを使用するための方法を書きます。 状況設定と期待する動作利用者全員がアクセスできるデフォルトのsocketと、なにがしかの条件をパスした人々のみが参加できる「chat」というnamespaceのsocketが

    yamadar
    yamadar 2011/07/15
    Socket.io 0.7からnamespaceあるいはroomといった機能が使えます。同時に複数のsocketを使えるので、chatに類するアプリでグループ毎に異なる部屋を設けるような機能を簡単に実現できます。
  • Socket.IO 0.7でnamespace毎に認証/認可を行う方法

    Socket.IO 0.7.6からio.of('/abc').authorization(function(data, fn) {...})という形でmultiplexでつくられたnamespaceごとに認証/認可を行えるようになっています。 member用のチャンネルにはログインしている人しか接続させない。 admin用のチャンネルには、ログインしていてかつadminのrole属性を持つ人しか接続させない。 といったことがかなり簡単に実現できるようになっています。以下、方法です。 まずサーバー側の設定です。// Server var io = sio.listen(app); io.configure(function() { io.set('transports', ['websocket', 'flashsocket', 'htmlfile', 'xhr-polling', 'jso

    yamadar
    yamadar 2011/07/11
    namespaceごとにauthorizationメソッドを使用して、そのcallbackの中で認証認可のためのロジックを組めるようになったため、許可のない場合はsocketに接続すらさせない実装が簡便に組めます。
  • Node.jsのために知っておくべきJavaScriptの基本3選

    node.js上でコードを書くため、JavaScriptをしっかり復習したりnode.jsの制御フローを知るための読むべきページのリストです。 JavaScriptそのものの復習http://ejohn.org/apps/learn/John Resigさんの書かれたチュートリアルがわかり易いと思います。 JavaRubyなどの言語を普段使っている方で、JavaScriptのプロトタイプベースのオブジェクト指向に親しみのない方は一読です。またJavaScriptに詳しい方も、GoogleのClosureでコードの最適化を行う際に問題を起こしにくいinheritanceを書くために、Michael Bolinさんの「Inheritance Pattern in JavaScript」を読んでみることをすすめます。http://www.bolinfest.com/javascript/inh

  • 1