fieldify js class inconsistencies fixed (visible with edge browser)
[brisk.git] / web / xynt-streaming.js
index f80e8e8..610d701 100644 (file)
@@ -5,6 +5,7 @@
 //
 function transport_ws(doc, xynt_streaming, page)
 {
+    this.name = "WebSocket";
     this.ctx_new = "";
     var self = this;
 
@@ -12,12 +13,14 @@ function transport_ws(doc, xynt_streaming, page)
     this.failed = false;
     this.xynt_streaming = xynt_streaming;
     try {
+this.xynt_streaming.log("PAGE: "+page);
         this.ws = new WebSocket(page);
         this.ws.onopen = function () {
             self.xynt_streaming.log("onopen");
             if (this.readyState == 1) {
                 // connected
                 self.ws_cb("open");
+                self.init_steps = 1;
             }
         };
         this.ws.onmessage = function (msg) {
@@ -26,11 +29,20 @@ function transport_ws(doc, xynt_streaming, page)
             self.ctx_new += msg.data;
         };
         this.ws.onclose = function (msg) {
-            self.xynt_streaming.log("onclose");
-            self.ws_cb("close");
+            this.onopen  = null;
+            this.onclose = null;
+            this.onerror = null;
+            self.xynt_streaming.log("onclose"+self.init_steps);
+            if (self.init_steps == 0)
+                self.ws_cb("error");
+            else
+                self.ws_cb("close");
         };
         this.ws.onerror = function () {
             // on error
+            this.onopen  = null;
+            this.onclose = null;
+            this.onerror = null;
             self.xynt_streaming.log("onerror");
             self.ws_cb("error");
         };
@@ -44,11 +56,14 @@ function transport_ws(doc, xynt_streaming, page)
 
 transport_ws.prototype = {
     doc: null,
+    name: null,
     xynt_streaming: "ready",
     ws: null,
     stopped: true,
     failed: false,
 
+    init_steps: 0,
+
     ctx_old: "",
     ctx_old_len: 0,
     ctx_new: "",
@@ -68,6 +83,7 @@ transport_ws.prototype = {
         if (from == "error") {
             if (this.xynt_streaming != "ready") {
                 if (this.xynt_streaming.transp_fback > 0) {
+this.xynt_streaming.log("DEC: "+this.xynt_streaming.transp_fback);
                     this.xynt_streaming.transp_fback--;
                    this.stopped = true;
                     this.xynt_streaming.reload();
@@ -81,6 +97,7 @@ transport_ws.prototype = {
 
     ws_abort: function() {
         if (this.ws != null) {
+this.xynt_streaming.log("WSCLOSE");
             this.ws.close();
         }
     },
@@ -146,6 +163,7 @@ transport_ws.prototype = {
 //
 function transport_xhr(doc, xynt_streaming, page)
 {
+    this.name = "XHR";
     this.doc = doc;
     this.xynt_streaming = xynt_streaming;
     this.xhr = createXMLHttpRequest();
@@ -160,6 +178,7 @@ function transport_xhr(doc, xynt_streaming, page)
 
 transport_xhr.prototype = {
     doc: null,
+    name: null,
     xynt_streaming: "ready",
     xhr: null,
     stopped: true,
@@ -275,6 +294,7 @@ transport_xhr.prototype = {
 //
 function transport_htmlfile(doc, xynt_streaming, page)
 {
+    this.name = "HTMLFile";
     this.doc = doc;
     this.xynt_streaming = xynt_streaming;
     this.transfdoc = new ActiveXObject("htmlfile");
@@ -289,6 +309,7 @@ function transport_htmlfile(doc, xynt_streaming, page)
 
 transport_htmlfile.prototype = {
     doc: null,
+    name: null,
     xynt_streaming: null,
     stopped: true,
     ifra: null,
@@ -378,6 +399,7 @@ transport_htmlfile.prototype = {
 //
 function transport_iframe(doc, xynt_streaming, page)
 {
+    this.name = "IFRAME";
     this.doc = doc;
     this.xynt_streaming = xynt_streaming;
     this.ifra = doc.createElement("iframe");
@@ -389,6 +411,7 @@ function transport_iframe(doc, xynt_streaming, page)
 
 transport_iframe.prototype = {
     doc: null,
+    name: null,
     xynt_streaming: null,
     stopped: true,
     ifra: null,
@@ -710,8 +733,7 @@ xynt_streaming.prototype = {
         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;
         }
@@ -854,6 +876,7 @@ xynt_streaming.prototype = {
                //xx this.hbit("+");
 
                 // alert("SINGLE: ["+singlecomm+"]");
+                // window.console.log("["+singlecomm+"]");
                this.cmdproc(singlecomm);
                again = 1;
            }