X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Fxynt-streaming.js;h=a144f1cbda4890b9088cce9e450e56bf8198f09e;hb=ef2da0157f1a97800360df93b89d3c234d3e04c5;hp=610d701402482ffbf99d0389338fe2acab1c71d0;hpb=aaf4fea3687a862c46a0100974b48806b3e99501;p=brisk.git diff --git a/web/xynt-streaming.js b/web/xynt-streaming.js index 610d701..a144f1c 100644 --- a/web/xynt-streaming.js +++ b/web/xynt-streaming.js @@ -5,7 +5,16 @@ // function transport_ws(doc, xynt_streaming, page) { - this.name = "WebSocket"; + // if four arguments manage if WS or WSS connection + if (arguments.length > 3) + this.is_secure = arguments[3]; + else + this.is_secure = false; + + if (this.is_secure) + this.name = "WebSocketSecure"; + else + this.name = "WebSocket"; this.ctx_new = ""; var self = this; @@ -13,7 +22,7 @@ function transport_ws(doc, xynt_streaming, page) this.failed = false; this.xynt_streaming = xynt_streaming; try { -this.xynt_streaming.log("PAGE: "+page); + this.xynt_streaming.log("PAGE: "+page); this.ws = new WebSocket(page); this.ws.onopen = function () { self.xynt_streaming.log("onopen"); @@ -622,24 +631,35 @@ xynt_streaming.prototype = { // page arrangement this.page = url_complete(this.win.location.href, this.page); + // DEFAULT TRANSPORT PROTOCOL HERE websocketsec, websocket if (this.transp_fback > 0) { - transp_type = "websocket"; - transp_port = (this.transp_fback == 2 ? 80 : 8080); + transp_type = "websocketsec"; + // transp_port = (this.transp_fback == 2 ? 443 : 8080); + transp_port = 443; } else { transp_type = this.transp_type; transp_port = this.transp_port; } - if (transp_type == "websocket") { - var end_proto, first_slash; + if (transp_type == "websocket" || transp_type == "websocketsec") { + var end_proto, first_slash, newpage; // change protocol this.log("precha ["+this.page+"]"); - end_proto = this.page.indexOf("://"); - first_slash = this.page.substring(end_proto+3).indexOf("/"); + if (transp_type == "websocketsec") { + newpage = this.page.replace(/\.php$/g, "_wss.php").replace(/\.php\?/g, "_wss.php?"); + } + else { + newpage = this.page; + } + end_proto = newpage.indexOf("://"); + first_slash = newpage.substring(end_proto+3).indexOf("/"); - page = "ws://" + this.page.substring(end_proto+3, end_proto+3+first_slash) + ":" + transp_port + this.page.substring(end_proto+3 + first_slash); + page = (transp_type == "websocketsec" ? "wss://" : "ws://") + + newpage.substring(end_proto+3, end_proto+3 + first_slash) + ":" + + transp_port + newpage.substring(end_proto+3 + first_slash); + // this.log("MOP WS: " + page); } else { page = this.page; @@ -652,7 +672,11 @@ xynt_streaming.prototype = { try { // transport instantiation - if (transp_type == "websocket") { + if (transp_type == "websocketsec") { + page = url_append_args(page, "transp", "websocketsec"); + this.transp = new transport_ws(this.doc, this, page, true); + } + else if (transp_type == "websocket") { page = url_append_args(page, "transp", "websocket"); this.transp = new transport_ws(this.doc, this, page); }