socket.io の examples/chat/app.js も coffeescript にしてみた。
socket.io の examples/chat/app.js
https://github.com/LearnBoost/socket.io/tree/master/examples/chat
も coffeescript にしてみた。
このサンプルでは stylus をつかっている。
stylus は便利そうだ。
- http://kyosuke.tumblr.com/post/14003234226/stylus
> Kyosuke hamalog (Sass と LESS 以外の選択肢 Stylus)
apl.coffeescript の中身を示す。
$ cat app.coffee
express = require 'express'
stylus = require 'stylus'
nib = require 'nib'
sio = require 'socket.io'
app = express.createServer()
app.configure ->
compile = (str, path) ->
stylus(str).set('filename', path).use nib()
app.use stylus.middleware(
src: __dirname + '/public'
compile: compile
)
app.use express.static(__dirname + '/public')
app.set 'views', __dirname + '/views'
app.set 'view engine', 'jade'
app.get '/', (req, res) ->
res.render 'index', layout: false
app.listen 300, ->
addr = app.address()
console.log " app listening on http://#{addr.address}:#{addr.port}"
io = sio.listen(app)
nicknames = {}
io.sockets.on 'connection', (socket) ->
socket.on 'user message', (msg) ->
socket.broadcast.emit 'user message', socket.nickname, msg
socket.on 'nickname', (nick, fn) ->
if nicknames[nick]
fn true
else
fn false
nicknames[nick] = socket.nickname = nick
socket.broadcast.emit 'announcement', nick + ' connected'
io.sockets.emit 'nicknames', nicknames
socket.on 'disconnect', ->
return unless socket.nickname
delete nicknames[socket.nickname]
socket.broadcast.emit 'announcement', socket.nickname + ' disconnected'
socket.broadcast.emit 'nicknames', nicknames
« coffeescript で unzip | トップページ | coffeescript +jasmine-node の例 »
この記事へのコメントは終了しました。
« coffeescript で unzip | トップページ | coffeescript +jasmine-node の例 »
コメント