Jump to content
Sign in to follow this  
cleggink

Lightstreamer Subscription Problems

Recommended Posts

Hello,

I recently started an account with your company in order to start an algorithmic trading application.

I’ve been testing heuristics against yahoo finance’s data and I believe I’m ready to move forward into actual trading. To be certain of this I need access to your data regarding currency pairs. I’ve managed my way thru all the GET and POST HTTP requests and cataloged all those responses myself, the documentation at https://docs.labs.gaincapital.com leads me to believe that there is an API developed for this already but I can’t seem to find it anywhere. If you can send a link for this that would be greatly appreciated, but not completely necessary.

So I’ve managed to logon, retrieve my CFD list and corresponding market data. Which is great.

Unfortunately when I attempt to subscribed to your Lightstreamer push service my application just doesn’t connect or subscribe in any way, without any error messages or exceptions thrown. I’ve been reading through Gain Capitals documentation and FAQs, along with those from Lightstreamer themselves. It is my belief that I’ve set up the code for this method correctly and I cannot trace an error of any fashion. I will include the code for this below. 

If it makes any difference to you I am using Eclipse IDE Version: 2021-12 (4.22.0) Build id: 20211202-1639, overtop Java SE 17 on Windows 10. The project Maven dependencies I am using are: jackson-annotations_2.13.1, jackson-core_2.13.1, jackson-databind_2.13.1, lightstreamer_java-system-out.log_1.02, lightstreamer_ls-log-adapter-java_1.02, lightstreamer_ls-javase-client_4.3.7, slf4j-api_1.7.32, and slf4j-log4j12_1.7.32.

I’m currently at a loss as to how to proceed from this point. Any assistance you can provide would be amazing. 

As a side note, if you had a code example in your online documentation as to the proper way to configure Lightstreamer for use with your service you might not have had to read all of this just now 😊

 

Thank you for your time and patience.

 

P.S. Problem code:

 

// TODO LIGHTSTREAMER SUBSCRIPTION

                           String[] items = new String[forexComMarketList.length];

                           String[] fields = { "stock_name", "MarketId", "Bid", "Offer", "Price", "High", "Low" };

 

                           for (int i = 0; i < items.length; i++) { // MARKET item LIST BUILD LOOP

                                         items = String.join("", "PRICE.", forexComMarketList.marketID);

                           }

                           lsClient = new LightstreamerClient("https://push.cityindex.com/", "STREAMINGALL");

                           lsClient.connectionDetails.setUser(forexComClientData.personalEmailAddress);

                           lsClient.connectionDetails.setPassword(forexComClientData.sessionToken);

                           lsClient.addListener(new LightstreamerClientListener());

                           lsClient.connect();

                           lsSub = new Subscription("MERGE", items, fields);

                           lsSub.addListener(new LightstreamerSubscriptionListener());

                           lsSub.setRequestedSnapshot("yes");

                           lsSub.setDataAdapter("PRICES");

                           lsClient.subscribe(lsSub);

Thank you again

 

Share this post


Link to post

Hello Clegg,

The first thing I can see that is causing a problem is a mismatch in the Java client version and the Lighstreamer version we are using on our servers. 

We're currently still using Lightstreamer v7.0.3 on our servers and you can access the downloads for the Java SE client kit appopriate for this LS version https://lightstreamer.com/download/#ls70

The version you are using from what you pasted above is for the latest LS 7.2.2. 

Kind Regards, PM

 

 

 

Share this post


Link to post

Thank you for replying so quickly, I'm downloading this version now. I'll let you know how that works for me. I don't recall reading anywhere that your servers where running v7.0.3 just a suggestion but perhaps this should be a bit more apparent in the documentation. And shame on Lightstreamer for not have backwards compatibility built into their API. Thanks again, I'll update this thread after I've integrated the legacy version.

Share this post


Link to post

Ok, sorry I've taken so long, the dependency you pointed out is now client version 4.3.0 from the package you suggested and I am still getting the same result.

Share this post


Link to post

Hello,

The following example from another user may prove helpful in getting your LS code to work. I've done a quick comparison between your code and theirs and it looks as though you have most of the required steps. Hopefully their example helps.

Kind Regards, PM  

 

 

Share this post


Link to post

I saw this thread a couple days ago while googling this problem, I noticed the version suggestion, which mentions going all the way down to v4.0.0. I tried this as well with no change. I'm back to your suggested v.4.3.0 client and am installing wireshark now to watch the traffic flow. Threads seem to create and then destroy themselves without error so I'm thinking it has something to do with the credentials I'm using, which I believed to be correct as the logon user name is the same as my forex.com account, and the password is supposed to be the session ID token received at from forex.com. I've tried every combination of user name, password, session token, and clientAccountID I could find. Still the same result.

Share this post


Link to post

Hello,

Let's make sure we have credentails all correct and done properly for LS.  

1) Test your login username/pass credentials are working correctly by logging in on our Web Trader platform at: https://www.forex.com/en-us/account-login/. (All our trading platforms use the API.) If you can login properly then we know the login credentials are fine. 

2) Use those same credentials to POST a LogOn call via the API directly. The successful login response will return a session ID token. 

image.png

3) Use your login username and the Session token as the password to authenticate with Lightstreamer. 

This should at least get us to confirming that you are authenticating with LS using the correct username and password. 

Question: How are you retrieving/getting the MarketIDs that you are using to subscribe for prices? 

I'm thinking once we know you are logging in/authenticating correctly, the next diagnostic step is to check you are subscribing to valid market IDs for prices.

Kind Regards, PM

 

Share this post


Link to post

Successfully logged into the webtrader using the same user pass combo I've been using. I grab the session token in this loginPost() which returns the proper sessionToken String. You didn't ask but I anticipate that it will be asked. The marketID is set by the functions getCFDList() which calls httpSessionBasedGet(), all functions included below for review. There is no issue logging in or grabbing the session token, or cataloging the data.

 

 

 

    public void getCFDList() { // ALL AVAILABLE CFD MARKETS LISTING (BUILDS forexComMarketList)
        String[] availMarkets = forexComTransport.httpSessionBasedGet(String.join("", forexComTransport.baseURL,
                "/cfd/markets?marketname=&maxresults=200&usemobileshortname=true")).split(",");
        // STRIP HEADER AND FOOTER OF JSON OBJECT STRING
        availMarkets[0] = availMarkets[0].substring(12, availMarkets[0].length());
        availMarkets[availMarkets.length - 1] = availMarkets[availMarkets.length - 1].substring(0,
                (availMarkets[availMarkets.length - 1].length() - 2));
        // CATALOG ALL AVAILABLE CFD MARKETS
        forexComMarketList = new MarketCFD[(availMarkets.length) / 3];

        for (int i = 0; i < forexComMarketList.length; i++) { // INITIALIZATION LOOP
            forexComMarketList = new MarketCFD();
        }

        int j = 0; // MARKET LIST CONSTRUCTION LOOP

        for (int i = 0; i < availMarkets.length; i++) {
            forexComMarketList[j].marketID = availMarkets.substring(12, availMarkets.length());
            i++;
            forexComMarketList[j].name = availMarkets.substring(8, availMarkets.length() - 1);
            i++;
            forexComMarketList[j].weighting = Integer.valueOf(
                    availMarkets.substring(12, availMarkets.length() - 1));
            j++;
        }
    }

 

 

public String httpSessionBasedGet(String pURL) { // GET COMMAND WITH HEADERS
        HttpResponse<String> getResponse = null;
        request = HttpRequest.newBuilder()
                .setHeader("Content-Type", "application/json")
                .setHeader("Accept", "*/*")
                .setHeader("UserName", user)
                .setHeader("Session", sessionToken)
                .uri(URI.create(pURL))
                .build();

        try {
            getResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
            // GET RESPONSE FAILURE
            if (getResponse.headers().map().get(":status").toString().compareTo("[200]") != 0) {
                getResponse = null;
            }

        } catch (IOException | InterruptedException e) {
            System.out.println("EXCEPTION: " + e.toString());
        }
        
        return getResponse.body();
    }

 

 

public String loginPost(String pURL, HashMap<String, String> pJSON) { // POST WITH REQUEST BODY
        HttpResponse<String> postResponse = null;

        try { // FORM POST COMMAND
            objectMapper = new ObjectMapper();
            requestBody = objectMapper.writeValueAsString(pJSON);
            request = HttpRequest.newBuilder()
                    .setHeader("Content-Type", "application/json")
                    .setHeader("Accept", "application/json")
                    .uri(URI.create(pURL))
                    .POST(HttpRequest.BodyPublishers.ofString(requestBody)).build();
            // SEND POST COMMAND
            postResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
            // CATALOG RESPONSES
            sessionToken = null;
            if (postResponse.headers().map().get(":status").toString().compareTo("[200]") == 0) {
                sessionToken = postResponse.body().substring(12, 48);

            } else { // LOGIN FAILURE
                postResponse = null;
            }

        } catch (Exception e) {
            System.out.println("EXCEPTION: " + e.toString());
        }

        return postResponse.body();
    }

data.gif

Share this post


Link to post

Hi,

Thanks for the detailed explanations/answers - we appreciate it.

The images attached appear to have saved in an ultra small size so it's hard to see - but it looks as though you are requesting or sending the Market Name in the list of fields to retrieve? Looking at the streaming PriceDTO response,  MarketName isn't a supported field. From the code you pasted in an earlier post, it also appears the TickDate hasn't been requested either?

I'd suggest using MarketId, TickDate, along with the other fields you've selected that are fine: Bid, Offer, Price, High, Low.

Additionally, It may be worth attempting to subscribe and retrieve prices for just one market only at the start whilst we are still in the debugging stage in getting this working. Once we have it working for one market, you can then go back to sending the array of markets to request.

Kind Regards, PM 

Share this post


Link to post

Sorry about the size of the picture, there is a size limit for attachments here so I had to shrink it. I've updated the fields as suggested. I've been watching wireshark capture network traffic as well and it seems that there isn't a problem logging in. However I can see in debug that the Lightstreamer client deamon threads are just vanishing. And with this field adjustment there is still no subscription notice as it should be triggering this onSubscription(), the boolean shown below only affects my heuristic class pauses calculation if there isn't any data coming in. I've also update this line lsSub = new Subscription("MERGE", "PRICE.154297", fields); to get rid of the array for testing as suggested. The market id is the one suggested in the online docs.

 

    @Override
    public void onSubscription() {
        System.out.println("Status: LIGHTSTREAMER SUBSCRIPTION STARTED");
        Main.httpHold = false;
    }

Screenshot (5).png

Share this post


Link to post

Hi,

Apologies for sending you on a little wild goose chase, the example market IDs in the online documentation are there as examples only and should not be copy pasted and used in code. This is because the markets in the examples could be taken from markets not available to US clients, which happens to be the case for 154297. As a Forex.com US user, you don't have access to that market at all.

I'd suggest using a market Id from the list you had in one of your screenshots, since that contained markets you had retrieved from an API call, we know for certain those market IDs are available to your account. 

Hopefully, the market ID was the final thing that needed fixing and now it will work - fingers crossed.

Kind Regards, PM 

  

Share this post


Link to post

Updated to AUD/CAD at random from my marketID list, right at the top of the list lol. Still no subscription, and it still bothers me that the thread disappears almost immediately. I wonder if it is in my listener implementation. Which is doesn't seem to be that either I just tested that as well by initializing those classes outside the addListener() function call with no change...

lsSub = new Subscription("MERGE", "PRICE.401484300", fields);

 

So I'm ashamed to admit that there was a missing dependency which I was only able to see  after I added this gem ahead of initializing the client

LightstreamerClient.setLoggerProvider(new SystemOutLogProvider());

 

And now I get this server error:

|DEBUG|lightstreamer.protocol|Session Thread <1>|New message (1): CONERR,60,License not valid for this Client version

 

In conclusion Lightstreamer client dependencies did not make it apparent that there is a dependency for:

        <!-- https://mvnrepository.com/artifact/io.netty/netty-all -->
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
            <version>4.1.73.Final</version>
        </dependency>

Which was the cause of the original error that couldn't be traced.

The license not being valid was due to the fact that after you told me to downgrade my client version to the applicable version for server 7.0.3 which Lightstreamers website told me was client version 4.3.0, when in reality it is 4.2.0. This typo has been pointed out to the administrators of Lightstreamers forum as I had to create a thread there as well to track down these innocuous errors. None of which where the fault of anyone here, so I apologize for spinning your wheels for something that I assumed was a server issue. I was wrong.

Share this post


Link to post

Hi!

Glad to see you managed to figure out the problem in the end! :) At least we know to check for these version mismatches more carefully in the future.

Kind Regards, PM

 

Share this post


Link to post

I really hate to keep this thread running for you but there seems to be another subscription problem still in this method and unfortunately I'm not as versed in lightstreamer as I'd like to be. I can see the data coming in thru the logger system, but for some reason the client is discarding all the incoming messages. Seems to start with this warning here :

|WARN |lightstreamer.stream|Session Thread <1>|onOpen event discarded

Which seems to disregard the subscription on the client end and then ignores all the incoming updates which stalls the connection and then keeps reconnecting with the same result. I can't seem to find a thread anywhere with this issue for reference. Full log to follow:

Status: INITIALIZING MATRIX
Status: LOGIN FOREX.COM: AUTHENTICATED
17.Jan.22 09:55:00,173|INFO |lightstreamer.actions|main|New client created
17.Jan.22 09:55:00,175|INFO |lightstreamer.actions|main|Server Address value changed to https://push.cityindex.com/
17.Jan.22 09:55:00,175|INFO |lightstreamer.actions|main|Adapter Set value changed to STREAMINGALL
17.Jan.22 09:55:00,178|INFO |lightstreamer.actions|main|Forced Transport value changed to null
17.Jan.22 09:55:00,178|INFO |lightstreamer.actions|main|User value changed to cleggfredrick@gmail.com
17.Jan.22 09:55:00,179|INFO |lightstreamer.actions|main|Password value changed
17.Jan.22 09:55:00,181|INFO |lightstreamer.actions|main|Connect requested
Status: LIGHTSTREAMER CLIENT LISTENER STARTED
17.Jan.22 09:55:00,191|DEBUG|lightstreamer.actions|main|Item list assigned: PRICE.401484300
17.Jan.22 09:55:00,192|DEBUG|lightstreamer.actions|main|Field list assigned: MarketId TickDate Bid Offer Price High Low
17.Jan.22 09:55:00,193|DEBUG|lightstreamer.actions|main|Snapshot Required assigned: yes
17.Jan.22 09:55:00,193|DEBUG|lightstreamer.actions|main|Adapter Set assigned: PRICES
17.Jan.22 09:55:00,195|DEBUG|lightstreamer.session|Session Thread <1>|Opening a new session and starting automatic reconnections
17.Jan.22 09:55:00,200|DEBUG|lightstreamer.session|Session Thread <1>|SessionManager state change: OFF -> STREAMING_WS
Status: LIGHTSTREAMER SUBSCRIPTION LISTENER STARTED
17.Jan.22 09:55:00,247|DEBUG|lightstreamer.netty.pool|Session Thread <1>|Creating new WS channel pool map
17.Jan.22 09:55:01,105|INFO |lightstreamer.actions|Session Thread <1>|Session ID value changed to null
17.Jan.22 09:55:01,105|INFO |lightstreamer.actions|Session Thread <1>|Server Socket Name value changed to null
17.Jan.22 09:55:01,105|INFO |lightstreamer.actions|Session Thread <1>|Client IP value changed to null
17.Jan.22 09:55:01,106|INFO |lightstreamer.actions|Session Thread <1>|Server Instance Address value changed to null
17.Jan.22 09:55:01,106|INFO |lightstreamer.session|Session Thread <1>|Opening new session
17.Jan.22 09:55:01,256|DEBUG|lightstreamer.netty.pool|Session Thread <1>|Creating new HTTP channel pool map
17.Jan.22 09:55:01,395|DEBUG|lightstreamer.netty.pool|Session Thread <1>|HTTP channel pool map [1] created and initialized
17.Jan.22 09:55:01,396|DEBUG|lightstreamer.netty.pool|Session Thread <1>|New HTTP channel pool created. Remote address: push.cityindex.com/<unresolved>:443
17.Jan.22 09:55:01,572|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: OFF -> CREATING
17.Jan.22 09:55:01,574|DEBUG|lightstreamer.session|Session Thread <1>|Status timeout in 4000
17.Jan.22 09:55:01,575|DEBUG|lightstreamer.session|Session Thread <1>|WebSocket early opening
17.Jan.22 09:55:01,577|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: NOT_CONNECTED
Status: LIGHTSTREAMER CLIENT: CONNECTING
17.Jan.22 09:55:01,589|DEBUG|lightstreamer.netty.pool|Session Thread <1>|New WS channel pool created. Remote address: push.cityindex.com/<unresolved>:443
17.Jan.22 09:55:01,597|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: CONNECTING
17.Jan.22 09:55:01,598|INFO |lightstreamer.subscribe|Session Thread <1>|Adding subscription 1
17.Jan.22 09:55:01,598|DEBUG|lightstreamer.actions|Session Thread <1>|Subscription 1 ready to be sent to server
17.Jan.22 09:55:01,599|DEBUG|lightstreamer.actions|Session Thread <1>|structures reset for subscription 1
17.Jan.22 09:55:01,599|DEBUG|lightstreamer.actions|Session Thread <1>|Subscription 1 is now on hold
17.Jan.22 09:55:01,764|DEBUG|lightstreamer.netty.pool|Netty Thread 1|HTTP channel created [ee653a32]
17.Jan.22 09:55:01,764|DEBUG|lightstreamer.netty.pool|Netty Thread 2|HTTP channel created [df90c136]
17.Jan.22 09:55:02,200|DEBUG|lightstreamer.netty.pool|Netty Thread 1|HTTP channel acquired [ee653a32]
17.Jan.22 09:55:02,200|DEBUG|lightstreamer.netty.pool|Netty Thread 2|HTTP channel acquired [df90c136]
17.Jan.22 09:55:02,246|DEBUG|lightstreamer.netty.pool|Netty Thread 4|ChannelUpgradeFuture state change: CONNECTING -> CONNECTION_OK
17.Jan.22 09:55:02,282|DEBUG|lightstreamer.stream|Netty Thread 3|HTTP transport sending [ee653a32]: /lightstreamer/create_session.txt?LS_protocol=TLCP-2.1.0
LS_polling=true&LS_cause=new.api&LS_polling_millis=0&LS_idle_millis=0&LS_cid=pcYgxptg4pkpW39AM3M4hwLri8L7MDl&LS_adapter_set=STREAMINGALL&LS_user=cleggfredrick@gmail.com&LS_password=93744e78-fbf1-4e71-9ed7-7938ae62bc5e&

17.Jan.22 09:55:02,311|DEBUG|lightstreamer.netty.pool|Netty Thread 2|HTTP channel active [df90c136]
17.Jan.22 09:55:02,311|DEBUG|lightstreamer.netty.pool|Netty Thread 1|HTTP channel active [ee653a32]
17.Jan.22 09:55:02,376|DEBUG|lightstreamer.netty.pool|Netty Thread 2|WS channel handshake [df90c136]
17.Jan.22 09:55:03,103|DEBUG|lightstreamer.stream|Netty Thread 1|Response status: 200
17.Jan.22 09:55:03,111|DEBUG|lightstreamer.stream|Netty Thread 1|HTTP transport receiving [ee653a32]:
CONOK,S4bc95cafd11478ebMbecT5503039,50000,0,push-retail-01-101-01.cityindex.com
SERVNAME,Lightstreamer HTTP Server
CLIENTIP,172.25.92.250
CONS,unlimited
LOOP,0

17.Jan.22 09:55:03,114|DEBUG|lightstreamer.netty.pool|Netty Thread 1|HTTP channel released [ee653a32]
17.Jan.22 09:55:03,115|DEBUG|lightstreamer.protocol|Session Thread <1>|New message: CONOK,S4bc95cafd11478ebMbecT5503039,50000,0,push-retail-01-101-01.cityindex.com
17.Jan.22 09:55:03,116|DEBUG|lightstreamer.session|Session Thread <1>|OK event while CREATING
17.Jan.22 09:55:03,117|DEBUG|lightstreamer.session|Session Thread <1>|Control-Link has changed: https://push.cityindex.com/ -> https://push-retail-01-101-01.cityindex.com/
17.Jan.22 09:55:03,117|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: DISCONNECTED
17.Jan.22 09:55:03,118|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: NOT_CONNECTED
17.Jan.22 09:55:03,118|DEBUG|lightstreamer.netty.pool|Session Thread <1>|New HTTP channel pool created. Remote address: push-retail-01-101-01.cityindex.com/<unresolved>:443
17.Jan.22 09:55:03,118|DEBUG|lightstreamer.netty.pool|Netty Thread 2|ChannelUpgradeFuture state change: CONNECTION_OK -> UPGRADE_OK
17.Jan.22 09:55:03,118|DEBUG|lightstreamer.netty.pool|Session Thread <1>|New WS channel pool created. Remote address: push-retail-01-101-01.cityindex.com/<unresolved>:443
17.Jan.22 09:55:03,118|DEBUG|lightstreamer.netty.pool|Netty Thread 2|WS channel created [df90c136]
17.Jan.22 09:55:03,119|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: CONNECTING
17.Jan.22 09:55:03,119|DEBUG|lightstreamer.session|Session Thread <1>|Data event while CREATING
17.Jan.22 09:55:03,119|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: CREATING -> CREATED
17.Jan.22 09:55:03,120|DEBUG|lightstreamer.session|Session Thread <1>|Status timeout in 2000
17.Jan.22 09:55:03,121|DEBUG|lightstreamer.actions|Session Thread <1>|Subscription 1 ready to be sent to server
17.Jan.22 09:55:03,121|INFO |lightstreamer.subscribe|Session Thread <1>|Preparing subscription: 1
17.Jan.22 09:55:03,122|INFO |lightstreamer.protocol|Session Thread <1>|Sending subscription request
17.Jan.22 09:55:03,122|DEBUG|lightstreamer.protocol|Session Thread <1>|subscription parameters: LS_reqId=1&LS_op=add&LS_subId=1&LS_mode=MERGE&LS_group=PRICE.401484300&LS_schema=MarketId TickDate Bid Offer Price High Low&LS_data_adapter=PRICES&LS_snapshot=true&LS_session=S4bc95cafd11478ebMbecT5503039&
17.Jan.22 09:55:03,127|INFO |lightstreamer.subscribe|Session Thread <1>|Start message handler
17.Jan.22 09:55:03,127|DEBUG|lightstreamer.subscribe|Session Thread <1>|Sending queued messages
17.Jan.22 09:55:03,128|INFO |lightstreamer.actions|Session Thread <1>|Session ID value changed to S4bc95cafd11478ebMbecT5503039
17.Jan.22 09:55:03,128|INFO |lightstreamer.actions|Session Thread <1>|Server Instance Address value changed to https://push-retail-01-101-01.cityindex.com/
17.Jan.22 09:55:03,128|DEBUG|lightstreamer.protocol|Session Thread <1>|New message: SERVNAME,Lightstreamer HTTP Server
17.Jan.22 09:55:03,129|INFO |lightstreamer.actions|Session Thread <1>|Server Socket Name value changed to Lightstreamer HTTP Server
17.Jan.22 09:55:03,129|DEBUG|lightstreamer.protocol|Session Thread <1>|New message: CLIENTIP,172.25.92.250
17.Jan.22 09:55:03,129|INFO |lightstreamer.actions|Session Thread <1>|Client IP value changed to 172.25.92.250
17.Jan.22 09:55:03,129|DEBUG|lightstreamer.protocol|Session Thread <1>|New message: CONS,unlimited
17.Jan.22 09:55:03,130|DEBUG|lightstreamer.session|Session Thread <1>|Data event while CREATED
17.Jan.22 09:55:03,130|DEBUG|lightstreamer.protocol|Session Thread <1>|New message: LOOP,0
17.Jan.22 09:55:03,130|DEBUG|lightstreamer.session|Session Thread <1>|Loop event while CREATED
17.Jan.22 09:55:03,130|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: CREATED -> FIRST_PAUSE
17.Jan.22 09:55:03,130|DEBUG|lightstreamer.session|Session Thread <1>|Timeout event while FIRST_PAUSE cause=null
17.Jan.22 09:55:03,130|DEBUG|lightstreamer.netty.pool|Netty Thread 6|HTTP channel created [8d95ce21]
17.Jan.22 09:55:03,130|INFO |lightstreamer.session|Session Thread <1>|Binding session
17.Jan.22 09:55:03,132|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: FIRST_PAUSE -> FIRST_BINDING
17.Jan.22 09:55:03,132|DEBUG|lightstreamer.session|Session Thread <1>|Status timeout in 4000
Status: LIGHTSTREAMER CLIENT: CONNECTED:STREAM-SENSING
17.Jan.22 09:55:03,139|DEBUG|lightstreamer.netty|Netty Thread 2|WebSocket handler added [df90c136]
17.Jan.22 09:55:03,142|WARN |lightstreamer.stream|Session Thread <1>|onOpen event discarded
17.Jan.22 09:55:03,652|DEBUG|lightstreamer.netty.pool|Netty Thread 6|HTTP channel acquired [8d95ce21]
17.Jan.22 09:55:03,718|DEBUG|lightstreamer.netty.pool|Netty Thread 7|ChannelUpgradeFuture state change: CONNECTING -> CONNECTION_OK
17.Jan.22 09:55:03,719|DEBUG|lightstreamer.netty.pool|Netty Thread 6|HTTP channel active [8d95ce21]
17.Jan.22 09:55:03,720|DEBUG|lightstreamer.netty.pool|Netty Thread 6|WS channel handshake [8d95ce21]
17.Jan.22 09:55:04,996|DEBUG|lightstreamer.netty.pool|Netty Thread 6|ChannelUpgradeFuture state change: CONNECTION_OK -> UPGRADE_OK
17.Jan.22 09:55:04,996|DEBUG|lightstreamer.netty.pool|Netty Thread 6|WS channel created [8d95ce21]
17.Jan.22 09:55:04,997|DEBUG|lightstreamer.netty|Netty Thread 6|WebSocket handler added [8d95ce21]
17.Jan.22 09:55:04,997|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: CONNECTED
17.Jan.22 09:55:04,997|DEBUG|lightstreamer.heartbeat|Session Thread <1>|rhb max interval 0
17.Jan.22 09:55:04,997|DEBUG|lightstreamer.heartbeat|Session Thread <1>|rhb current interval 0
17.Jan.22 09:55:04,998|DEBUG|lightstreamer.stream|Session Thread <1>|WS transport sending [8d95ce21]: bind_session
LS_cause=loop1&LS_session=S4bc95cafd11478ebMbecT5503039&
17.Jan.22 09:55:05,002|DEBUG|lightstreamer.actions|Session Thread <1>|Subscription 1 sent to server
17.Jan.22 09:55:05,002|DEBUG|lightstreamer.heartbeat|Session Thread <1>|rhb updated
17.Jan.22 09:55:05,002|DEBUG|lightstreamer.stream|Session Thread <1>|WS transport sending [8d95ce21]: control
LS_reqId=1&LS_op=add&LS_subId=1&LS_mode=MERGE&LS_group=PRICE.401484300&LS_schema=MarketId TickDate Bid Offer Price High Low&LS_data_adapter=PRICES&LS_snapshot=true&
17.Jan.22 09:55:05,149|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
CONOK,S4bc95cafd11478ebMbecT5503039,50000,5000,push-retail-01-101-01.cityindex.com
CLIENTIP,172.25.49.254

17.Jan.22 09:55:05,150|DEBUG|lightstreamer.protocol|Session Thread <1>|New message: CONOK,S4bc95cafd11478ebMbecT5503039,50000,5000,push-retail-01-101-01.cityindex.com
17.Jan.22 09:55:05,151|DEBUG|lightstreamer.session|Session Thread <1>|OK event while FIRST_BINDING
17.Jan.22 09:55:05,151|DEBUG|lightstreamer.session|Session Thread <1>|Control-Link has changed: https://push-retail-01-101-01.cityindex.com/ -> https://push-retail-01-101-01.cityindex.com/
17.Jan.22 09:55:05,151|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: DISCONNECTED
17.Jan.22 09:55:05,151|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: NOT_CONNECTED
17.Jan.22 09:55:05,151|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: CONNECTING
17.Jan.22 09:55:05,152|INFO |lightstreamer.actions|Session Thread <1>|Keepalive Interval value changed to 5000
17.Jan.22 09:55:05,152|DEBUG|lightstreamer.session|Session Thread <1>|Data event while FIRST_BINDING
17.Jan.22 09:55:05,152|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: FIRST_BINDING -> RECEIVING
17.Jan.22 09:55:05,152|DEBUG|lightstreamer.session|Session Thread <1>|Status timeout in 5000
17.Jan.22 09:55:05,153|DEBUG|lightstreamer.mpn|Session Thread <1>|MpnManager state change on onSessionStart: NoSessionState -> SessionOkState
17.Jan.22 09:55:05,153|DEBUG|lightstreamer.netty.pool|Netty Thread 5|HTTP channel created [19d5f359]
Status: LIGHTSTREAMER CLIENT: CONNECTED:WS-STREAMING
17.Jan.22 09:55:05,154|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: CLIENTIP,172.25.49.254
17.Jan.22 09:55:05,351|DEBUG|lightstreamer.netty.pool|Netty Thread 5|HTTP channel acquired [19d5f359]
17.Jan.22 09:55:05,351|DEBUG|lightstreamer.netty.pool|Netty Thread 1|ChannelUpgradeFuture state change: CONNECTING -> CONNECTION_OK
17.Jan.22 09:55:05,392|DEBUG|lightstreamer.netty.pool|Netty Thread 5|HTTP channel active [19d5f359]
17.Jan.22 09:55:05,396|DEBUG|lightstreamer.netty.pool|Netty Thread 5|WS channel handshake [19d5f359]
17.Jan.22 09:55:05,410|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
CONS,unlimited

17.Jan.22 09:55:05,411|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: CONS,unlimited
17.Jan.22 09:55:05,411|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
REQOK,1

17.Jan.22 09:55:05,412|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: REQOK,1
17.Jan.22 09:55:05,412|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
SUBOK,1,1,7
CONF,1,unlimited,filtered

17.Jan.22 09:55:05,412|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: SUBOK,1,1,7
17.Jan.22 09:55:05,412|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: CONF,1,unlimited,filtered
17.Jan.22 09:55:05,413|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
U,1,1,401484300|\/Date(1642431304198)\/|0.90354|0.90378|0.90366|0.90594|0.90259

17.Jan.22 09:55:05,413|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,401484300|\/Date(1642431304198)\/|0.90354|0.90378|0.90366|0.90594|0.90259
17.Jan.22 09:55:05,413|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
U,1,1,|\/Date(1642431305248)\/|0.90355||0.90367||

17.Jan.22 09:55:05,414|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431305248)\/|0.90355||0.90367||
17.Jan.22 09:55:06,034|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
U,1,1,|\/Date(1642431305967)\/|0.90354|0.90377|0.90366||

17.Jan.22 09:55:06,034|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431305967)\/|0.90354|0.90377|0.90366||
17.Jan.22 09:55:06,034|DEBUG|lightstreamer.netty.pool|Netty Thread 5|ChannelUpgradeFuture state change: CONNECTION_OK -> UPGRADE_OK
17.Jan.22 09:55:06,035|DEBUG|lightstreamer.netty.pool|Netty Thread 5|WS channel created [19d5f359]
17.Jan.22 09:55:06,035|DEBUG|lightstreamer.netty|Netty Thread 5|WebSocket handler added [19d5f359]
17.Jan.22 09:55:06,035|DEBUG|lightstreamer.stream|Session Thread <1>|WebSocket transport: CONNECTED
17.Jan.22 09:55:06,252|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
U,1,1,|\/Date(1642431306218)\/|0.90350|0.90374|0.90362||

17.Jan.22 09:55:06,252|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431306218)\/|0.90350|0.90374|0.90362||
17.Jan.22 09:55:06,513|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
U,1,1,|\/Date(1642431306470)\/|0.90351|0.90375|0.90363||

17.Jan.22 09:55:06,514|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431306470)\/|0.90351|0.90375|0.90363||
17.Jan.22 09:55:06,934|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
U,1,1,|\/Date(1642431306720)\/||0.90374|0.90362||

17.Jan.22 09:55:06,935|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431306720)\/||0.90374|0.90362||
17.Jan.22 09:55:08,123|DEBUG|lightstreamer.netty.pool|Netty Thread 1|channel closed [ee653a32]
17.Jan.22 09:55:08,124|DEBUG|lightstreamer.netty.pool|Netty Thread 1|HTTP channel inactive [ee653a32]
17.Jan.22 09:55:08,714|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
U,1,1,|\/Date(1642431308641)\/|0.90352|0.90375|0.90364||

17.Jan.22 09:55:08,715|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431308641)\/|0.90352|0.90375|0.90364||
17.Jan.22 09:55:08,970|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
U,1,1,|\/Date(1642431308891)\/|0.90355|0.90378|0.90367||

17.Jan.22 09:55:08,971|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431308891)\/|0.90355|0.90378|0.90367||
17.Jan.22 09:55:10,156|DEBUG|lightstreamer.session|Session Thread <1>|Timeout event while RECEIVING cause=null
17.Jan.22 09:55:10,156|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: RECEIVING -> STALLING
17.Jan.22 09:55:10,156|DEBUG|lightstreamer.session|Session Thread <1>|Status timeout in 2000
17.Jan.22 09:55:11,612|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
SYNC,6
U,1,1,|\/Date(1642431311578)\/|0.90356|0.90379|0.90368||

17.Jan.22 09:55:11,612|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: SYNC,6
17.Jan.22 09:55:11,613|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431311578)\/|0.90356|0.90379|0.90368||
17.Jan.22 09:55:12,165|DEBUG|lightstreamer.session|Session Thread <1>|Timeout event while STALLING cause=null
17.Jan.22 09:55:12,165|DEBUG|lightstreamer.session|Session Thread <1>|Session state change: STALLING -> STALLED
17.Jan.22 09:55:12,165|DEBUG|lightstreamer.session|Session Thread <1>|Status timeout in 3000
Status: LIGHTSTREAMER CLIENT: STALLED
17.Jan.22 09:55:12,568|DEBUG|lightstreamer.stream|Netty Thread 6|WS transport receiving [8d95ce21]:
U,1,1,|\/Date(1642431312529)\/|0.90355|0.90378|0.90367||

17.Jan.22 09:55:12,569|WARN |lightstreamer.stream|Session Thread <1>|onMessage event discarded: U,1,1,|\/Date(1642431312529)\/|0.90355|0.90378|0.90367||

 

Share this post


Link to post

Hello,

We haven't encountered this error before ourselves. A Web Search found a thread on the LightStreamer forums where a user had this problem on Android. In the end it turned out to be a mismatched client to server version. <_<

Posting to the LS forum is probably the best chance for a solution to the problem.

Kind Regards, PM

Share this post


Link to post

Well whether or not you intended it you found it anyway. So for future reference everyone lightstreamer client version 4.2.8 is the one that works here. Thanks for everything physicsman you where great. If you're ever in Ohio I'll buy you a beer!

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
Sign in to follow this  
×