Jump to content
Dawoodshah100

Unable to stream PRICES in Javascript Client

Recommended Posts

Hi,

A couple of points. 

1) Please repost the javascript file as a text file so that it can be downloaded through our security protocols and the code examined. 

2) Please provide more detail to your issues such as: what you are attempting to do, how you are attempting to do it, and what the problem you are encountering is.

Note: we can only help where your problem is directly related to the API webservices as documented at: http://docs.labs.cityindex.com/.

Kind Regards, PM!

 

Share this post


Link to post
define(["js/lsClient","Subscription","StaticGrid"], 
        function(lsClient,Subscription,StaticGrid) {
        
    
    
    lsClient.connect();
        var stocksGrid = new StaticGrid("stocks",true);
        stocksGrid.setAutoCleanBehavior(true,false);
        stocksGrid.addListener({
          onVisualUpdate: function(key,info) {
            if (info == null) {
              //cleaning
              return;
            }
            var cold = (key.substring(4) % 2 == 1) ? "#eeeeee" : "#ddddee";
            info.setAttribute("yellow", cold, "backgroundColor");
          }
        });
        
//          var abc=stocksGrid.extractItemList();
//        var abcd=stocksGrid.extractFieldList();
        var stockSubscription = new Subscription("MERGE",stocksGrid.extractItemList(),["MarketId", "TickDate", "Bid", "Offer", "Price","High","Low", "Change", "Direction", "Delta", "ImpliedVolatility", "AuditId", "StatusSummary"]);
         stockSubscription.addListener(stocksGrid);
        stockSubscription.setItems(["PRICES.PRICE.99588"]);
        stockSubscription.setDataAdapter("PRICES");
        stockSubscription.setRequestedSnapshot("yes");
          
         
        
        lsClient.subscribe(stockSubscription);
        lsClient.connect()
      });

This is the Code, Now I want to Update the Static Grid but there is no Update from the stream.
The HTML Code is 
 

<!-- stock table -->
 <table cellspacing="0" cellpadding="2"  border="0" >
      <tr class="tableTitle">
<!--        <td width="148" style="text-align: left">Name</td>-->
        <td width="42">MarketId</td>
        <td width="64" style="text-align: center">TickDate</td>
        <td width="61">Bid</td>
        <td width="50">Offer</td>
        <td width="50">Price</td>
        <td width="50">High</td>
        <td width="50">Low</td>
        <td width="50">Change</td>
        <td width="50">Direction</td>
        <td width="50">Delta</td>
        <td width="50">ImpliedVolatility</td>
        <td width="50">AuditId</td>
        <td width="50">StatusSummary</td>
      </tr>
      <tr class="coldOdd">
<!--        <td nowrap="nowrap" style="text-align: left"><div class="stockNameOdd" data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="stock_name">Loading...</div></td>-->
        <td><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="MarketId">-</div></td>
        <td><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="TickDate">-</div></td>
        <td nowrap="nowrap"><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="Bid">-</div></td>
        <td><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="Offer">-</div></td>
        <td><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="Price">-</div></td>
        <td><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="High">-</div></td>
        <td><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="Low">-</div></td>
        <td><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="Change">-</div></td>
        <td><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="Direction">-</div></td>
        <td><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="Delta">-</div></td>
        <td><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="ImpliedVolatility">-</div></td>
        <td><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="AuditId">-</div></td>
        <td><div data-source="lightstreamer" data-grid="stocks" data-item="item1" data-field="StatusSummary">-</div></td>
      </tr>

And there are 10 more rows, for data-item= item2.......item10

Share this post


Link to post

I have used 
 

 ADAPTER: "STREAMINGALL",
    SERVER: "https://push.cityindex.com/",

and 
 

lsClient.connectionDetails.setUser("DM454504");
          lsClient.connectionDetails.setPassword(Session); //send the token, not the password, to the Lightstreamer server   
          lsClient.connect();

Yet The Grid Doesn't Update

Share this post


Link to post

Hi,

On a cursory inspection, I suspect it's because you are using MERGE mode, rather than DISTINCT or RAW. The differences between these modes are described from page 18 onwards of the attached Lightstreamer General Concepts.pdf file.

If the attached document doesn't help, you can post your Ligthstreamer related query to the Lightstreamer forum at: https://forums.lightstreamer.com/.

Kind Regards, PM!

 

Lightstreamer General Concepts.pdf

Share this post


Link to post

Hi,

Our servers are still using Lightstreamer version 5, which does NOT support websockets. It is only from Lightstreamer v6.1 onwards that supports websockets.

Kind Regards, PM!

Share this post


Link to post

Ok But Now I stream Data by using lightstreamer 5 with websockets, 
I solved the above problem by updating the

data-item="item1"

item1,item2.......item3 etc to updating them to Price.{MarketId} like item1 is replaced by Price.99588.... Now the

var stockSubscription = new Subscription("MERGE",stocksGrid.extractItemList(),["MarketId", "TickDate", "Bid", "Offer", "Price","High","Low", "Change", "Direction", "Delta", "ImpliedVolatility", "AuditId", "StatusSummary"]);
         stockSubscription.addListener(stocksGrid);
        

Now stocksGrid.extractItemList() have array of Price.MarketId. And there is no need to use stockSubscription.setItems(["PRICES.PRICE.99588"]); Now.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×