forked from zappajs/zappajs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
chat.coffee
43 lines (34 loc) · 1.02 KB
/
chat.coffee
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
32
33
34
35
36
37
38
39
40
41
42
43
require('./zappa') ->
@enable 'serve jquery'
@get '/': ->
@render index: {layout: no}
@on 'set nickname': ->
@client.nickname = @data.nickname
@on said: ->
@broadcast said: {nickname: @client.nickname, text: @data.text}
@emit said: {nickname: @client.nickname, text: @data.text}
@client '/index.js': ->
@connect()
@on said: ->
$('#panel').append "<p>#{@data.nickname} said: #{@data.text}</p>"
$ =>
@emit 'set nickname': {nickname: prompt 'Pick a nickname!'}
$('#box').focus()
$('button').click (e) =>
@emit said: {text: $('#box').val()}
$('#box').val('').focus()
e.preventDefault()
@view index: ->
doctype 5
html ->
head ->
title 'PicoChat!'
script src: '/socket.io/socket.io.js'
script src: '/zappa/jquery.js'
script src: '/zappa/zappa.js'
script src: '/index.js'
body ->
div id: 'panel'
form ->
input id: 'box'
button 'Send'