//
function transport_ws(doc, xynt_streaming, page)
{
+ // 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;
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");
transport_ws.prototype = {
doc: null,
+ name: null,
xynt_streaming: "ready",
ws: null,
stopped: true,
//
function transport_xhr(doc, xynt_streaming, page)
{
+ this.name = "XHR";
this.doc = doc;
this.xynt_streaming = xynt_streaming;
this.xhr = createXMLHttpRequest();
transport_xhr.prototype = {
doc: null,
+ name: null,
xynt_streaming: "ready",
xhr: null,
stopped: true,
//
function transport_htmlfile(doc, xynt_streaming, page)
{
+ this.name = "HTMLFile";
this.doc = doc;
this.xynt_streaming = xynt_streaming;
this.transfdoc = new ActiveXObject("htmlfile");
transport_htmlfile.prototype = {
doc: null,
+ name: null,
xynt_streaming: null,
stopped: true,
ifra: null,
//
function transport_iframe(doc, xynt_streaming, page)
{
+ this.name = "IFRAME";
this.doc = doc;
this.xynt_streaming = xynt_streaming;
this.ifra = doc.createElement("iframe");
transport_iframe.prototype = {
doc: null,
+ name: null,
xynt_streaming: null,
stopped: true,
ifra: null,
win: null,
transp_type: null,
transp_port: 80,
+ transp_type_cur: null,
+ transp_port_cur: 80,
transp_fback: 0,
transp: null,
console: null,
// 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);
+ if (location.protocol == 'https:') {
+ transp_type = "websocketsec";
+ transp_port = 443;
+ }
+ else {
+ transp_type = "websocket";
+ transp_port = (this.transp_fback == 2 ? 80 : 8080);
+ }
+
}
else {
transp_type = this.transp_type;
transp_port = this.transp_port;
}
- if (transp_type == "websocket") {
- var end_proto, first_slash;
+ this.transp_type_cur = transp_type;
+ this.transp_port_cur = transp_port;
+
+ 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;
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);
}
var ctx_new_len;
if (this.sandbox != null) {
- // from old: var zug = "POLL sess = "+sess+" stat = "+stat+" subst = "+subst+" step = "+this.gst.st+" step_loc = "+this.gst.st_loc+" step_loc_new = "+this.gst.st_loc_new+" STOP: "+this.stopped;
- var zug = "WATCHDOG sess = ["+this.sess+"] step = "+this.gst.st+" step_loc = "+this.gst.st_loc+" step_loc_new = "+this.gst.st_loc_new;
+ var zug = "WATCHDOG sess = ["+this.sess+"] step = "+this.gst.st+" step_loc = "+this.gst.st_loc+" step_loc_new = "+this.gst.st_loc_new+"Transport: "+this.transp.name;
if (zug != this.sandbox.innerHTML)
this.sandbox.innerHTML = zug;
}
// alert("SINGLE: ["+singlecomm+"]");
// window.console.log("["+singlecomm+"]");
this.cmdproc(singlecomm);
+ if (this.transp_type_cur) {
+ this.transp_type = this.transp_type_cur;
+ this.transp_port = this.transp_port_cur;
+ }
again = 1;
}
} while (again);