File: pingServer.js

package info (click to toggle)
event-dance 0.1.20-2
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 5,068 kB
  • sloc: ansic: 25,946; sh: 11,340; makefile: 418; xml: 249; python: 27
file content (74 lines) | stat: -rw-r--r-- 1,816 bytes parent folder | download | duplicates (5)
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
/*
 * pingServer.js
 *
 * EventDance examples
 *
 * Copyright (C) 2010-2012, Igalia S.L.
 *
 * Authors:
 *   Eduardo Lima Mitev <elima@igalia.com>
 */

imports.searchPath.unshift ("../common");

const Evd = imports.gi.Evd;

const LISTEN_PORT = 8080;

Evd.tls_init ();

/* daemon */
var daemon = new Evd.Daemon.get_default (null, null);
daemon.set_pid_file ("/tmp/ping.pid");

/* web transport */
var transport = new Evd.WebTransportServer ();

function peerOnReceive (t, peer) {
    var data = peer.transport.receive_text (peer);

    transport.send_text (peer, data);
}

if (transport["signal"])
    transport.signal.receive.connect (peerOnReceive);
else
    transport.connect ("receive", peerOnReceive);

/* web dir */
var webDir = new Evd.WebDir ({ root: "../common" });

/* web selector */
var selector = new Evd.WebSelector ();

selector.set_default_service (webDir);
transport.selector = selector;

//selector.tls_autostart = true;
selector.tls_credentials.add_certificate_from_file ("../../tests/certs/x509-server.pem",
                                                    "../../tests/certs/x509-server-key.pem",
                                                    null,
                                                    null,
                                                    null);

/* start listening */
selector.listen ("0.0.0.0:" + LISTEN_PORT, null,
    function (service, result) {
        try {
            service.listen_finish (result);
            print ("Listening, now point your browser to http://localhost:" + LISTEN_PORT + "/ping.html");
        }
        catch (e) {
            if (e["message"])
                print (e.message);
            else
                print (e);

            daemon.quit (-1);
        }
    }, null);

/* start the show */
daemon.run ();

Evd.tls_deinit ();