image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« coffeescript で unzip | トップページ | coffeescript +jasmine-node の例 »

2011-12-25

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 の例 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: socket.io の examples/chat/app.js も coffeescript にしてみた。:

« coffeescript で unzip | トップページ | coffeescript +jasmine-node の例 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク