├── .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 | --------------------------------------------------------------------------------