├── .gitignore
├── public
├── client.js
└── index.html
├── app.js
├── package.json
├── README.md
└── npm-shrinkwrap.json
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/public/client.js:
--------------------------------------------------------------------------------
1 | var socket = io.connect('http://node-soup.herokuapp.com:80');
2 |
3 | socket.on('badge', function(data) {
4 | console.log('New Badge!');
5 | });
6 |
7 |
--------------------------------------------------------------------------------
/app.js:
--------------------------------------------------------------------------------
1 | var express = require('express');
2 | var app = express();
3 |
4 | app.use(express.static('public'));
5 |
6 | app.listen(3001, function() {
7 | console.log('Listening on 3001');
8 | });
9 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Badges Socket Client
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "badges-socket-client",
3 | "version": "0.0.0",
4 | "description": "",
5 | "main": "app.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "Carlos Souza (http://csouza.me/)",
10 | "license": "ISC",
11 | "dependencies": {
12 | "express": "^4.10.1"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Code School Badges
2 |
3 | This is a demo app which connects with the
4 | WebSocket server.
5 |
6 | ## Running
7 |
8 | Install dependencies with `npm install`.
9 | Run with `node app.js`.
10 |
11 | Visit and you should see a message printed to the JavaScript console every time
12 | a new *badge* event is emitted from the WebSocket server.
13 |
--------------------------------------------------------------------------------
/npm-shrinkwrap.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "badges-socket-client",
3 | "version": "0.0.0",
4 | "dependencies": {
5 | "express": {
6 | "version": "4.10.1",
7 | "from": "express@",
8 | "resolved": "https://registry.npmjs.org/express/-/express-4.10.1.tgz",
9 | "dependencies": {
10 | "accepts": {
11 | "version": "1.1.2",
12 | "from": "accepts@~1.1.2",
13 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.1.2.tgz",
14 | "dependencies": {
15 | "mime-types": {
16 | "version": "2.0.2",
17 | "from": "mime-types@~2.0.2",
18 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.2.tgz",
19 | "dependencies": {
20 | "mime-db": {
21 | "version": "1.1.2",
22 | "from": "mime-db@~1.1.0",
23 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.1.2.tgz"
24 | }
25 | }
26 | },
27 | "negotiator": {
28 | "version": "0.4.9",
29 | "from": "negotiator@0.4.9",
30 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz"
31 | }
32 | }
33 | },
34 | "content-disposition": {
35 | "version": "0.5.0",
36 | "from": "content-disposition@0.5.0",
37 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz"
38 | },
39 | "cookie-signature": {
40 | "version": "1.0.5",
41 | "from": "cookie-signature@1.0.5",
42 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.5.tgz"
43 | },
44 | "debug": {
45 | "version": "2.1.0",
46 | "from": "debug@~2.1.0",
47 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.1.0.tgz",
48 | "dependencies": {
49 | "ms": {
50 | "version": "0.6.2",
51 | "from": "ms@0.6.2",
52 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz"
53 | }
54 | }
55 | },
56 | "depd": {
57 | "version": "1.0.0",
58 | "from": "depd@~1.0.0",
59 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.0.tgz"
60 | },
61 | "escape-html": {
62 | "version": "1.0.1",
63 | "from": "escape-html@1.0.1",
64 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz"
65 | },
66 | "etag": {
67 | "version": "1.5.0",
68 | "from": "etag@~1.5.0",
69 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.5.0.tgz",
70 | "dependencies": {
71 | "crc": {
72 | "version": "3.0.0",
73 | "from": "crc@3.0.0",
74 | "resolved": "https://registry.npmjs.org/crc/-/crc-3.0.0.tgz"
75 | }
76 | }
77 | },
78 | "finalhandler": {
79 | "version": "0.3.2",
80 | "from": "finalhandler@0.3.2",
81 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.3.2.tgz"
82 | },
83 | "fresh": {
84 | "version": "0.2.4",
85 | "from": "fresh@0.2.4",
86 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.4.tgz"
87 | },
88 | "media-typer": {
89 | "version": "0.3.0",
90 | "from": "media-typer@0.3.0",
91 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
92 | },
93 | "methods": {
94 | "version": "1.1.0",
95 | "from": "methods@1.1.0",
96 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.0.tgz"
97 | },
98 | "on-finished": {
99 | "version": "2.1.1",
100 | "from": "on-finished@~2.1.1",
101 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.1.1.tgz",
102 | "dependencies": {
103 | "ee-first": {
104 | "version": "1.1.0",
105 | "from": "ee-first@1.1.0",
106 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.0.tgz"
107 | }
108 | }
109 | },
110 | "parseurl": {
111 | "version": "1.3.0",
112 | "from": "parseurl@~1.3.0",
113 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz"
114 | },
115 | "path-to-regexp": {
116 | "version": "0.1.3",
117 | "from": "path-to-regexp@0.1.3",
118 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.3.tgz"
119 | },
120 | "proxy-addr": {
121 | "version": "1.0.3",
122 | "from": "proxy-addr@~1.0.3",
123 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.3.tgz",
124 | "dependencies": {
125 | "forwarded": {
126 | "version": "0.1.0",
127 | "from": "forwarded@~0.1.0",
128 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz"
129 | },
130 | "ipaddr.js": {
131 | "version": "0.1.3",
132 | "from": "ipaddr.js@0.1.3",
133 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.3.tgz"
134 | }
135 | }
136 | },
137 | "qs": {
138 | "version": "2.3.2",
139 | "from": "qs@2.3.2",
140 | "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.2.tgz"
141 | },
142 | "range-parser": {
143 | "version": "1.0.2",
144 | "from": "range-parser@~1.0.2",
145 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.2.tgz"
146 | },
147 | "send": {
148 | "version": "0.10.1",
149 | "from": "send@0.10.1",
150 | "resolved": "https://registry.npmjs.org/send/-/send-0.10.1.tgz",
151 | "dependencies": {
152 | "destroy": {
153 | "version": "1.0.3",
154 | "from": "destroy@1.0.3",
155 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz"
156 | },
157 | "mime": {
158 | "version": "1.2.11",
159 | "from": "mime@1.2.11",
160 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz"
161 | },
162 | "ms": {
163 | "version": "0.6.2",
164 | "from": "ms@0.6.2",
165 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz"
166 | }
167 | }
168 | },
169 | "serve-static": {
170 | "version": "1.7.1",
171 | "from": "serve-static@~1.7.1",
172 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.7.1.tgz"
173 | },
174 | "type-is": {
175 | "version": "1.5.2",
176 | "from": "type-is@~1.5.2",
177 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.5.2.tgz",
178 | "dependencies": {
179 | "mime-types": {
180 | "version": "2.0.2",
181 | "from": "mime-types@~2.0.2",
182 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.2.tgz",
183 | "dependencies": {
184 | "mime-db": {
185 | "version": "1.1.2",
186 | "from": "mime-db@~1.1.0",
187 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.1.2.tgz"
188 | }
189 | }
190 | }
191 | }
192 | },
193 | "vary": {
194 | "version": "1.0.0",
195 | "from": "vary@~1.0.0",
196 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.0.tgz"
197 | },
198 | "cookie": {
199 | "version": "0.1.2",
200 | "from": "cookie@0.1.2",
201 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz"
202 | },
203 | "merge-descriptors": {
204 | "version": "0.0.2",
205 | "from": "merge-descriptors@0.0.2",
206 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz"
207 | },
208 | "utils-merge": {
209 | "version": "1.0.0",
210 | "from": "utils-merge@1.0.0",
211 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz"
212 | }
213 | }
214 | }
215 | }
216 | }
217 |
--------------------------------------------------------------------------------