Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Lightstreamer - Portfolio Demo - HTML (Dojo Toolkit) Client

The Portfolio Demo simulates a portfolio management: it shows a list of stocks included in a portfolio and provide a simple order entry form. Changes to portfolio contents, as a result of new orders, are displayed on the page in real-time. In addition to that, the Full Version of the Portfolio Demo also shows, for each stock in the portfolio, the current price, updated in real-time from a market data feed.

This project includes a web client front-end for the Lightstreamer - Portfolio Demo - Java Adapter, showing the integration between the Dojo Toolkit and the Lightstreamer JavaScript Client library.

Live Demo


View live demo

*Note. Real-Time simulated Portfolio data is received from the Lightstreamer Server deployed at


The demo shows how to use: the Lightstreamer JavaScript Client library, the Dojo Toolkit, the LightstreamerStore 1.0 for Dojo integration package, the dgrid widget library and the DojoX Charts library, together.

Known Bugs

  • If the user inputs any value in the dgrid and an update for that rows arrives from the store, the user's value is overwritten.
  • If the user inputs any value and then presses + (to buy) or - (to sell) immediately after, the quantity field appears still empty and the first click fails.


If you want to install a version of this demo pointing to your local Lightstreamer Server, follow these steps:

  • The the Dojo Toolkit Portfolio Demo, needs both the PORTFOLIO_ADAPTER, from the Portfolio Demo, and the QUOTE_ADAPTER, from the Stock-List Demo (see Lightstreamer - Stock-List Demo - Java Adapter). As a prerequisite, the full version of the Lightstreamer - Portfolio Demo - Java Adapter has to be deployed on your local Lightstreamer Server instance. Please follow the instructions in Install the Portfolio Demo to install it.
  • Launch Lightstreamer Server.
  • Download this project.
  • Create the folders /pages/demos/[demo_name] into your Lightstreamer server installation then copy here the content of src folder of this project.
  • Get the lightstreamer_namespace.js file from Lightstreamer distribution (see compatibility notes below) and put it in the src folder of the demo. The version required by this demo can be found in Lightstreamer version 5.1.2 to 7.0. Alternatively, you can build a lightstreamer_namespace.js file from the online generator. In that case, be sure to include the LightstreamerClient, Subscription, ConnectionSharing, and StatusWidget modules and to use the "AMD with namespaced names" version.
  • Download the Dojo Toolkit and copy the dojox folder from the package to the src folder of the demo. The demo requires the Dojo Toolkit v.1.8 or higher.
  • Using the CommonJS Package Manager install dgrid, dijit and lightstreamer-store in the src folder; dependencies for these packages will be automatically resolved by the cpm process:
    • cpm install dgrid 0.3.8
    • cpm install dijit
    • cpm install lightstreamer-store
  • The demo is now ready to be launched: navigate to src/portfolio.html and enjoy.


It is suggested to compress the dojo/dojox/dijit files in a single js source file to minimize startup times.

Head for the Dojo Web Builder and select the following packages:

  • dijit.layout.BorderContainer
  • dijit.Dialog
  • dijit.registry
  • dojox.charting.Chart
  • dojox.charting.StoreSeries
  • dojox.charting.axis2d.Default
  • dojox.charting.plot2d.Default
  • dojox.charting.themes.Claro
  • dijit.form.ToggleButton
  • dojo.parser
  • dojo.domReady
  • dijit.layout.ContentPane
  • dijit.form.Button
  • dojox.collections.Dictionary
  • dojox.collections.ArrayList
  • dojox.gfx.svg
  • dijit.form.NumberTextBox
  • dijit.form.CurrencyTextBox
  • dojo.number
  • dijit.form.NumberSpinner
  • dijit.form.FilteringSelect
  • dijit.form.Button
  • dijit.TitlePane

Then click the "build" button and wait. Once the builder is done, a zip file will be downloaded; copy the files/folders from the archive in the src/dojo foloder and reload the demo.

Once the demo is working in your environment, it is time to deploy it on a web server.

The demo currently connects to a local Lightstreamer server to get the stock data. It is possible to change this setting, making the demo point to a different server. Obviously, in this Case, the DEMO adapter needs to be installed on the tagert server (currently, such adapter is installed by default). To change the server, edit the js/lsClient.js file and substitute the following line:

    var lsClient = new LightstreamerClient(protocolToUse+"//localhost:"+portToUse,"FULLPORTFOLIODEMO");


    var lsClient = new LightstreamerClient(myServer,"FULLPORTFOLIODEMO");

where myServer contains the address of the server (comprehending the port if different from the default one). As an example, to connect to a local server listening on port 8080 use:

    var lsClient = new LightstreamerClient("http://localhost:8080","FULLPORTFOLIODEMO");

See Also

Lightstreamer Adapters Needed by This Client

Lightstreamer Compatibility Notes

  • Compatible with Lightstreamer JavaScript Client library version 6.0 to 7.x.
  • Compatible with Dojo Toolkit v.1.8 or newer.


A simple portfolio demo application showing integration between the Dojo Toolkit and the Lightstreamer JS Client







No releases published


No packages published