node.js

socket.ioでリアルタイムチャット

投稿日:2012年12月20日 更新日:

環境

node v0.9.3
express 3.0.4
socket.io 0.9.13

socket.ioの1.0.0がもうすぐ出るらしいところでチャットを試してみた

CentOS5.8にnodebrewでnode.jsをインストール

 リファレンス

socket.io/#how-to-use

参考書

socket.io日本語公式

jxck.github.com/socket.io/

準備

node_modulesというディレクトリにライブラリがダウンロードされる

expressはnode.jsのウェブフレームワーク.今回は静的なページを提供するのに使う.

サーバー側~express

まずexpress

app.coffee

これでpublicディレクトリにindex.htmlを適当につくってcoffee app.coffeeを実行すれば簡易なウェブサーバができる

socket.ioのイベント駆動

onでイベントを受けたときの処理を書いて、emitでイベントを発生させる

これを交互にやり取りする

connectとdisconectとmessageは特別なイベントでその他は自由に名付けてよい

 

サーバー側~socket.io

つながったソケットのidをログに流して、dataイベントが送られてきたらdataをログに流してオウム返しする

このidからsocketオブジェクトを作れるのかな?

クライアント側

npmでインストールすると、socket.io/socket.io.jsでライブラリをロードできるようになる

client.coffee(Makeしてclient.jsをつくっておく)

ほんとはサニタイズとかしないと

 接続者全員にメッセージを流したいので修正

app.coffee

app.coffeeの全部ソース

なんか再現しようとしたらうまく動かなかったので、下のは動いた.

 

 情報

[socket.io] Authorizing和訳

stackoverflow.com/questions/12244436/preventing-csrf-for-websockets

Socket.IO API 解説

 Node.js + Socket.IO + jQuery で最小構成チャット

-node.js
-,

執筆者:

関連記事

gulpでelectronをlivereloadしながらcoffeeとsassで開発する環境

By: Nrico – CC BY 2.0 目次1 package.json2 gulpfile.coffee3 bower + browserify4 ストップウォッチ package. …

Electronで簡単にMac風UI〜Photon

By: Patrick Hoesly – CC BY 2.0 目次1 Photon2 gulpfile.coffee3 index.scss4 Todolistに適用する5 できた Pho …

Electron + CoffeeScript + Backbone.js + EcoでTodolistをつくってみた

By: Purple Slog – CC BY 2.0 目次1 はじめに2 gulpの準備3 Hello electron4 Hello Backbone.js & eco5 Ba …

Electronでmaterialize

By: Vancouver Film School – CC BY 2.0 目次1 Materialize2 bower3 sass4 browserify5 できた Materializ …

Electron+Browserify(debowerify)+jQueryUi

By: Wilson Hui – CC BY 2.0 目次1 bower install2 browserify(debowerify)3 require4 jQueryUIをMarion …