タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

*websocketと*socket.ioに関するyamadarのブックマーク (5)

  • 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を試すときは,ポートの開き忘れとcookieに注意(いろいろ追記・修正)

    2011/03/02:いろいろ間違ってたので追記・修正 WebSocket = 3000じゃないですね.どっかで誤認したまま記事を書いてたようです.すみません.(手探り系だとよくあることですよね!) はてブのコメントに私信 port 3000 で動かしてる node.js にapache でリバースプロキシしてるなら、単に apache が websocket の proxy に対応してないだけでは?WebSocket に対応した Reverse Proxy ならポートなんてあける必要ないよ。http://bit.ly/gKplDu コメントありがとうございます. 構成はnode.jsとsocket.ioを使って接続する実装サンプルと,ポートの設定周りをごく基的にな感じでして,apacheは使っていないです.ポート開けなくても済むならそのほう良さそうなので,もうちょい迷走してみます. 2

    socket.ioを試すときは,ポートの開き忘れとcookieに注意(いろいろ追記・修正)
    yamadar
    yamadar 2011/07/11
    cookieに方式を記録する。
  • 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に接続すらさせない実装が簡便に組めます。
  • Socket.IO: the cross-browser WebSocket for realtime apps.

    Socket.IOBidirectional and low-latency communication for every platform PerformantIn most cases, the connection will be established with WebSocket, providing a low-overhead communication channel between the server and the client. ReliableRest assured! In case the WebSocket connection is not possible, it will fall back to HTTP long-polling. And if the connection is lost, the client will automatical

    Socket.IO: the cross-browser WebSocket for realtime apps.
  • 1