Results 1 to 10 of 30

Hybrid View

  1. #1
    Administrator
    Join Date
    Jul 2006
    Location
    Milan
    Posts
    1,091
    We expect no difference between a Pushpage that is recalled directly in the browser and a Pushpage that is included as an iFrame.
    Ensure that the url used to load the page is the same in both cases.

    You can check if any difference is induced on the Server side by looking at the Server log after setting the LightstreamerLogger.subscriptions and LightstreamerLogger.push categories as DEBUG in lightstreamer_log_conf.xml

  2. #2
    Member
    Join Date
    Feb 2009
    Location
    KL
    Posts
    29
    Hi DarioCrevelli,

    After I've set the LightstreamerLogger.subscriptions and LightstreamerLogger.push categories as DEBUG in lightstreamer_log_conf.xml, I see bunch of logs as below:

    RELEASING DATA --> HTTP/1.0 200 OK
    Date: Thu, 4 Jun 2009 09:07:06 GMT
    Server: Lightstreamer/3.5 build 1428.4 (Lightstreamer Push Server - www.lightstreamer.com) Moderato edition
    Content-Type: text/html; charset=iso-8859-1
    Cache-Control: no-store
    Cache-Control: no-cache
    Pragma: no-cache
    Expires: Thu, 1 Jan 1970 00:00:00 GMT
    Content-Length: 300000
    Connection: close

    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="Cache-Control" content="no-store">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="Thu, 1 Jan 1970 00:00:00 GMT">
    <title>Lightstreamer is pushing...</title>

    <script>
    var LS_window = parent;
    if (window.LS_e || window.e) {
    LS_window = window;
    }
    if (LS_window.LS_e) {
    } else {
    LS_window.LS_w = LS_window.w;
    LS_window.LS_l = LS_window.l;
    LS_window.LS_e = LS_window.e;
    LS_window.LS_s = LS_window.s;
    LS_window.LS_u = LS_window.u;
    LS_window.LS_v = LS_window.v;
    LS_window.LS_n = LS_window.onEos;
    LS_window.LS_o = LS_window.o;
    LS_window.LS_forceReload = LS_window.forceReload;
    }
    if (LS_window.LS_t) {
    LS_window.LS_t("Lightstreamer");
    }
    var phase = null;
    function setPhase(ph) {
    phase = ph;
    }

    var winPhase = {};
    function setWin(tbl, ph) {
    winPhase[tbl] = ph;
    }

    var clsd = false;
    function c(cod, ph, tbl) {
    LS_window.LS_w(cod, ph, tbl);
    }

    function error(cod, ph, tbl, msg) {
    if (tbl != null) {
    LS_window.LS_l(cod, ph, tbl, msg);
    } else {
    LS_window.LS_l(cod, phase, null, msg);
    }
    }

    function start(sID, addr, kaMs, reqLim, srv) {
    LS_window.LS_e(1, phase, sID, addr, kaMs, reqLim, srv);
    }

    function end() {
    LS_window.LS_e(4, phase);
    }

    function loop(holdMs) {
    LS_window.LS_e(2, phase, holdMs);
    }

    function retry() {
    LS_window.LS_e(3, phase);
    }

    function s0(lastTopFreq, lastSlowFact, maxBW) {
    LS_window.LS_s(phase, -1, lastTopFreq, lastSlowFact, maxBW);
    }
    function y(secs) {
    LS_window.LS_s(phase, secs);
    }

    var unchangedSignal = {};
    unchangedSignal.length = -1;
    function convert(arr, first) {
    var i;
    for (i = first; i < arr.length; i++) {
    if (arr[i] == null || arr[i] == '') arr[i] = unchangedSignal;
    else if (arr[i] == '$') arr[i] = '';
    else if (arr[i] == '#') arr[i] = null;
    else if (arr[i].charAt) {
    var f = arr[i].charAt(0);
    if (f == '$' || f == '#') arr[i] = arr[i].substring(1);
    }
    }
    return arr;
    }
    function d(tbl) {
    try { LS_window.LS_u(winPhase[tbl], convert(d.arguments, 2)); } catch(exc) {}
    }
    function z(tbl) {
    LS_window.LS_v(winPhase[tbl], convert(z.arguments, 2));
    }
    function n(tbl) {
    LS_window.LS_n(winPhase[tbl], n.arguments);
    }
    function r(tbl) {
    LS_window.LS_o(winPhase[tbl], r.arguments);
    }
    function p() {
    LS_window.LS_u(phase, p.arguments);
    }

    </script>
    </head>

    <body onload="if (! clsd) { retry(); }">
    <script>setPhase(6503);</script><script>start('Se1cd2a9d1651078aT0706204', null, 2000, 50000);</script><script>s0(0.0,1.0,-1.0);</script>
    RELEASING DATA --> <script>c(6,4,1);setWin(1,4);setWin(1,4);</script>
    INCOMING END OF SNAPSHOT NOTIFY for NewUser
    Manager: com.lightstreamer.c.fb@27982
    INCOMING DATA for NewUser --> {home=loading, teama=loading [H], teamb=loading, under=loading, score=loading, hhandicap=&nbsp;, bgcolor=white, away=loading, over=loading, sfe=<font color=white>loading</font>, command=ADD, ahandicap=loading, datetime=loading, overunder=loading, key=loading}
    Manager: com.lightstreamer.c.fb@27982
    INCOMING DATA for NewUser --> {command=DELETE, key=loading}
    Manager: com.lightstreamer.c.fb@27982
    RELEASING DATA --> <script>n(1,1,1);</script>
    RELEASING DATA --> <script>p();</script>
    RELEASING DATA --> <script>p();</script>
    RELEASING DATA --> <script>p();</script>
    RELEASING DATA --> <script>p();</script>
    RELEASING DATA --> <script>p();</script>
    RELEASING DATA --> <script>p();</script>
    RELEASING DATA --> <script>p();</script>
    RELEASING DATA --> <script>p();</script>
    RELEASING DATA --> <script>p();</script>
    RELEASING DATA --> <script>p();</script>

    I don't really understand what it means, can you please have a look on it? Thanks.

  3. #3
    Administrator
    Join Date
    Jul 2006
    Location
    Milan
    Posts
    1,091
    I expected to see more log, but the snippet clearly shows that a filtering operation was performed by the Server.
    The two updates received in fast sequence, with an ADD and a DELETE for the "loading" key, cause the deletion to be performed internally before the ADD event is sent to the client. In this case, nothing is sent at all.

    This is the correct behavior, as we consider the key information as obsolete at the time the DELETE is received. Probably, you are not using the COMMAND mode in the correct way; why should you delete the key at that point?
    Anyway, you can suppress this kind of filtering by asking the item in "unfiltered" mode, that is, by issuing setRequestedMaxFrequency("unfiltered") on the client page.

    There is no reason why the filtering should happen only when your page is loaded in an iFrame. However, this filtering behaviour is exposed to race conditions. The Server might forward the ADD event before receiving the DELETE event depending on the current load and two different page initialization sequences can explain the different outcomes.

 

 

Similar Threads

  1. How to deploy on an external Web Server?
    By AndyKelly in forum Client SDKs
    Replies: 1
    Last Post: July 7th, 2010, 10:50 AM
  2. How to deploy on an external Web Server?
    By AndyKelly in forum Adapter SDKs
    Replies: 0
    Last Post: July 6th, 2010, 10:34 AM
  3. Interaction demo source code
    By sarbao in forum General
    Replies: 1
    Last Post: April 16th, 2009, 08:59 AM
  4. Replies: 4
    Last Post: March 19th, 2008, 10:10 AM
  5. Replies: 1
    Last Post: November 5th, 2007, 01:36 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
All times are GMT +1. The time now is 12:17 AM.