-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
92 lines (60 loc) · 2.3 KB
/
index.js
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//
// Project Index
//
// =======================================================
// Require Diet
// =======================================================
var server = require('diet')
// =======================================================
// Create Server
// =======================================================
var app = module.app = server()
app.config = require('./config')(app)
app.listen(app.config.host)
// =======================================================
// View Engine
// =======================================================
var ect = require('ect')({ root : app.path+'/views/html/', watch: true, ext: '.html' })
app.view('html', ect.render)
// =======================================================
// Static Files
// =======================================================
var static = require('diet-static')({ path: app.path+'/views/' })
app.view('file', static)
// =======================================================
// Data Model
// =======================================================
var data = {
title: 'Hello World',
description: 'A simple example for using Vue with Diet',
counter: 0
}
// =======================================================
// Routes
// =======================================================
app.get('/', function($){
$.data = data;
$.end()
})
// =======================================================
// Socket.io
// =======================================================
var io = require('socket.io')(app.server)
io.on('connection', function(socket){
console.log(' ... A user connected');
socket.on('save', function(key, value){
// Log the update
console.log(' ... save', key, 'to', value)
// Save the value
data[key] = value
// Broadcast change to all user agents
socket.broadcast.emit('update', key, value);
})
})
// Every second
setInterval(function(){
// Updates the counter by 1
data.counter++
// Emit to listeners
io.emit('update', 'counter', data.counter);
}, 1000)