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
-,

執筆者:

関連記事

Electronでmaterialize

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

Electronでsql.js

By: Dmitry Baranovskiy – CC BY 2.0 目次1 sql.js2 準備3 インストール4 main.coffee5 index.coffee6 index.ht …

ElectronでTrayアイコン

By: Cooks & Kitchens – CC BY 2.0 目次1 Tray2 main.coffee3 できた Tray github.com/atom/electron

Electron+Browserify(debowerify)+jQueryUi

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

no image

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

github.com/hokaccha/nodebrew インストールは簡単

.bashrcに追加 [crayon-58aa81d30 …