comparison rlgterm.js @ 201:f3843245a35e

Initial support for TLS. RLGWebD now serves via encrypted connections on port 8081. The client-side script now uses secure WebSockets if the page is being accessed via HTTPS.
author John "Elwin" Edwards
date Sun, 01 Jan 2017 20:18:01 -0500
parents 9758ca68e7f1
children
comparison
equal deleted inserted replaced
200:a7cc38a0168d 201:f3843245a35e
394 /* When starting the socket, the choices list might not be initialized. */ 394 /* When starting the socket, the choices list might not be initialized. */
395 getchoices(); 395 getchoices();
396 } 396 }
397 if (statsock) 397 if (statsock)
398 return; 398 return;
399 statsock = new WebSocket("ws://" + window.location.host + "/status"); 399 var wsproto = "ws://";
400 if (window.location.protocol == "https:")
401 wsproto = "wss://";
402 statsock = new WebSocket(wsproto + window.location.host + "/status");
400 statsock.onmessage = function (ev) { 403 statsock.onmessage = function (ev) {
401 var msg; 404 var msg;
402 try { 405 try {
403 msg = JSON.parse(ev.data); 406 msg = JSON.parse(ev.data);
404 } catch (e) { 407 } catch (e) {
616 if (!("lcred" in sessionStorage) || session.connect) 619 if (!("lcred" in sessionStorage) || session.connect)
617 return; 620 return;
618 if (!window.WebSocket) { 621 if (!window.WebSocket) {
619 return; 622 return;
620 } 623 }
621 var sockurl = "ws://" + window.location.host + "/play/" + game.uname; 624 var wsproto = "ws://";
625 if (window.location.protocol == "https:")
626 wsproto = "wss://";
627 var sockurl = wsproto + window.location.host + "/play/" + game.uname;
622 sockurl += "?key=" + sessionStorage.getItem("lcred") + "&w=80&h=24"; 628 sockurl += "?key=" + sessionStorage.getItem("lcred") + "&w=80&h=24";
623 ws = new WebSocket(sockurl); 629 ws = new WebSocket(sockurl);
624 ws.onopen = function (event) { 630 ws.onopen = function (event) {
625 session.connect = true; 631 session.connect = true;
626 session.playing = true; 632 session.playing = true;
651 } 657 }
652 658
653 function startwatching(tag) { 659 function startwatching(tag) {
654 if (session.connect) 660 if (session.connect)
655 return; 661 return;
656 var sockurl = "ws://" + window.location.host + "/watch/" + tag; 662 var wsproto = "ws://";
663 if (window.location.protocol == "https:")
664 wsproto = "wss://";
665 var sockurl = wsproto + window.location.host + "/watch/" + tag;
657 var ws = new WebSocket(sockurl); 666 var ws = new WebSocket(sockurl);
658 ws.onopen = function (event) { 667 ws.onopen = function (event) {
659 session.connect = true; 668 session.connect = true;
660 session.sock = ws; 669 session.sock = ws;
661 setmode("watch"); 670 setmode("watch");