Skip to content

Instantly share code, notes, and snippets.

@sivagao
Created March 2, 2013 09:54
Show Gist options
  • Select an option

  • Save sivagao/5070348 to your computer and use it in GitHub Desktop.

Select an option

Save sivagao/5070348 to your computer and use it in GitHub Desktop.
RT filename.
#client端代码
#点击添加的时候
@socket.emit 'newItem', newItem if @socket
#点击加入的时候
joinList: ->
@socket = io.connect("http://localhost:3000")
@socket.on 'connect', =>
@socket.emit 'joinList', @$joinListName.val()
@socket.on 'syncItems', (items) =>
@syncItems(items)
syncItems: (items) ->
console.log 'syncing items'
localStorage.clear()
localStorage.setObj item.id. item for item in items
@displayItems()
#server端代码 -
#io.sockets代表所有可能接入server的sockets[来自client]的reference,
#所有'on-connect'和'in(room)'就好理解了
io.sockets.on 'connection', (socket) =>
console.log 'connected'
socket.on 'joinList', (list) =>
console.log "joining list #{list}"
socket.list = list
socket.join(list)
@todos[list] ?= []
socket.emit 'syncItems', @todos[list]
socket.on 'newItem', (todo) =>
console.log 'newItem #{todo.title}'
@todos[list].push todo
io.sockets.in(socket.list).emit('itemAdded', todo)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment