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 ();
|