UNPKG

2.08 kBMarkdownView Raw
1# LiveReload server in Node.js
2
3Implementation of the server side of the [LiveReload protocol](https://github.com/livereload/livereload-protocol) in Node.js; a component of LiveReload.app and some other projects.
4
5Status: beta (expected to work, but not tested in production yet).
6
7
8## Installation
9
10 npm install livereload-server
11
12
13## Example
14
15See example/dummy-server.js for a runnable version of this code:
16
17 var fs = require('fs');
18 var Path = require('path');
19 var LRWebSocketServer = require('livereload-server');
20
21 // id, name, version identifies your app;
22 // protocols specifies the versions of subprotocols you support
23 var server = new LRWebSocketServer({ id: "com.example.acme", name: "Acme", version: "1.0", protocols: { monitoring: 7, saving: 1 } });
24
25 server.on('connected', function(connection) {
26 console.log("Client connected (%s)", connection.id);
27 });
28
29 server.on('disconnected', function(connection) {
30 console.log("Client disconnected (%s)", connection.id);
31 });
32
33 server.on('command', function(connection, message) {
34 console.log("Received command %s: %j", message.command, message);
35 });
36
37 server.on('error', function(err, connection) {
38 console.log("Error (%s): %s", connection.id, err.message);
39 });
40
41 server.on('livereload.js', function(request, response) {
42 console.log("Serving livereload.js.");
43 fs.readFile(Path.join(__dirname, 'res/livereload.js'), 'utf8', function(err, data) {
44 if (err) throw err;
45
46 response.writeHead(200, {'Content-Length': data.length, 'Content-Type': 'text/javascript'});
47 response.end(data);
48 });
49 });
50
51 server.on('httprequest', function(url, request, response) {
52 response.writeHead(404);
53 response.end()
54 });
55
56 server.listen(function(err) {
57 if (err) {
58 console.error("Listening failed: %s", err.message);
59 return;
60 }
61 console.log("Listening on port %d.", server.port);
62 });
63
64
65
66## License
67
68© 2012, Andrey Tarantsov, distributed under the MIT license.