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. …

Todolistをmarionette化

By: Jackie – CC BY 2.0 目次1 Marionette.js2 インストール3 Application4 gulpfile.coffee5 ItemView6 Coll …

Electronでsql.js

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

Electronでsqlite3を使ったアプリ

By: fdecomite – CC BY 2.0 目次1 環境2 electronでnpmモジュールを使うには3 jqueryをレンダラプロセスで使う4 slqite3の使い方5 ipc …

Ubuntu12.04にnode6.9をインストール~nodebrew

By: Kazuyoshi Kato – CC BY 2.0 目次1 nodebrew自身のアップデート2 nodebrewでnode6.9をインストール3 yarnのインストール nod …