{"id":220343,"date":"2014-04-22T12:06:03","date_gmt":"2014-04-22T08:06:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=220343"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=220343","title":{"rendered":"<span class=\"post_title\">\u0414\u0443\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0439 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u043e\u0431\u043c\u0435\u043d \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u0432\u0435\u0431\u0430, \u043c\u043e\u0431\u0430\u0439\u043b\u0430 \u0438 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0430 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/span>"},"content":{"rendered":"<div class=\"content html_format\"> \t\t\t<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/1f6\/6f7\/769\/1f66f7769b67fed9182253da92c53579.png\" align=\"left\"\/> \u0414\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442, \u043d\u0435 \u0432\u0430\u0436\u043d\u043e \u0431\u0443\u0434\u044c \u044d\u0442\u043e \u0432\u0435\u0431, \u043c\u043e\u0431\u0430\u0439\u043b \u0438\u043b\u0438 \u0434\u0435\u0441\u043a\u0442\u043e\u043f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0435\u0445\u043d\u0438\u043a. \u041d\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c \u0447\u0442\u043e \u043e\u043d\u0438 \u0432\u0441\u0435 \u0440\u0430\u0437\u043d\u044b\u0435 \u0438 \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0438 \u0442\u043e\u043c \u0436\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0438 \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0432\u0441\u0435\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445, \u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043a\u043e\u0434 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f. \u0412\u043e\u0442 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u0441\u044f \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439 \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043e\u0434\u043d\u0438\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <a href=\"http:\/\/www.lightstreamer.com\/\">LightStreamer<\/a>.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0421\u043a\u0430\u0436\u0443 \u0441\u0440\u0430\u0437\u0443 \u2014 \u044d\u0442\u043e \u043d\u0435 \u0440\u0435\u043a\u043b\u0430\u043c\u0430 \u0438 \u044f \u043d\u0435 \u0438\u043c\u0435\u044e \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0443 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0432\u043e\u0437\u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0435\u043d\u0438\u044f \u0437\u0430 \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443 (\u043a\u0440\u043e\u043c\u0435 \u043c\u043e\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e, \u0437\u0430 \u0442\u043e \u0447\u0442\u043e \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c).<\/p>\n<p>  \u0418\u0442\u0430\u043a, LightStreamer \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043d\u0430 Java \u0438 \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043a\u0430\u043a \u043d\u0430 Windows \u0442\u0430\u043a \u0438 Linux \u043c\u0430\u0448\u0438\u043d\u0430\u0445 + \u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043d\u0430 \u0430\u043c\u0430\u0437\u043e\u043d\u0435, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 Amazon Machine Image \u0441 LightStreamer \u043d\u0430 \u0431\u043e\u0440\u0442\u0443 <a href=\"http:\/\/download.lightstreamer.com\/\">download.lightstreamer.com<\/a>.<br \/>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 (\u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0430\u043f\u043a\u0430) \u0443\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0435\u043c\u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044e, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043a 20 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u0447\u0442\u043e, \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u0441\u044c, \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u043d\u043e \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u2014 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u0430\u0437\u0430\u0442\u044c evaluation \u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 60 \u0434\u043d\u0435\u0439. \u0412\u043e\u0442 <a href=\"http:\/\/www.lightstreamer.com\/licenseTypes.htm\">\u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439<\/a>.<\/p>\n<p>  \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u044b \u0432 \/Lightstreamer\/GETTING_STARTED.TXT \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0430\u0440\u0445\u0438\u0432\u0430. \u0412\u0441\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e (\u043e\u043f\u0438\u0448\u0443 \u0434\u043b\u044f Windows):<br \/>   \u2014 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c, \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u043a\u043e\u0440\u0435\u043d\u044c \u0434\u0438\u0441\u043a\u0430 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0430\u0440\u0445\u0438\u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u043a \u0444\u0430\u0439\u043b\u0430\u043c;<br \/>   \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c TCP \u043f\u043e\u0440\u0442\u044b \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0441\u0435\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u0432 \/Lightstreamer\/conf\/lightstreamer_conf.xml, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 8080 \u0438 8888;<br \/>   \u2014 \u0432 \/Lightstreamer\/bin\/windows\/LS.bat \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 JAVA_HOME \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0433\u0434\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d JDK (\u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u2014 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435);<br \/>   \u2014 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440 \/Lightstreamer\/bin\/windows\/Start_LS_as_Application.bat.<br \/>  \u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0430 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c <a href=\"http:\/\/localhost:8080\">http:\/\/localhost:8080<\/a> (\u043f\u043e\u0440\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u043e\u0442 \u0436\u0435 \u0447\u0442\u043e \u0431\u044b\u043b \u0443\u043a\u0430\u0437\u0430\u043d \u0432 \/Lightstreamer\/conf\/lightstreamer_conf.xml) \u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0441 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u043f\u0440\u0435\u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u0435 \u0434\u0435\u043c\u043a\u0438.<br \/>  \u0422\u0430\u043a \u0436\u0435 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u043e HTTP \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c HTTPS \u0438 <a href=\"http:\/\/www.lightstreamer.com\/latest\/Lightstreamer_Allegro-Presto-Vivace_5_1_Colosseo\/Lightstreamer\/DOCS-SDKs\/Clustering.pdf\">\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0441 \u043b\u043e\u0430\u0434\u0431\u0430\u043b\u0430\u043d\u0441\u0435\u0440\u043e\u043c<\/a><\/p>\n<p>  \u0427\u0442\u043e \u0436, \u0441\u0435\u0440\u0432\u0435\u0440 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u043d\u043e \u0442\u043e\u043b\u043a\u0443 \u043c\u0430\u043b\u043e \u2014 \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438 \u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u043e\u0432 (\u0447\u0442\u043e \u0442\u043e \u043d\u0430 \u043f\u043e\u0434\u043e\u0431\u0438\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432). \u0422\u043e \u0435\u0441\u0442\u044c, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0430\u0434\u0430\u043f\u0442\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441 \u043d\u0430\u0448\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0438 \u0434\u0430\u0442\u044c \u0437\u043d\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0447\u0442\u043e \u0431\u044b \u043e\u043d \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u043b \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u043d\u0435\u0433\u043e.<\/p>\n<h5>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430<\/h5>\n<p>  \u0412 \u043f\u0430\u043f\u043a\u0435 \/Lightstreamer\/DOCS-SDKs\/ \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f SDK. \u0414\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u043d\u0430 .NET \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Lightstreamer.Interfaces.Data.IDataProvider \u0438\u0437 \/Lightstreamer\/DOCS-SDKs\/sdk_adapter_dotnet\/lib\/DotNetAdapter_N2.dll  <\/p>\n<pre><code class=\"cs\">using System; using System.Collections; using System.Threading; using Lightstreamer.Interfaces.Data; public class HelloWorldAdapter : IDataProvider {     private IItemEventListener _listener;     private volatile bool go;     public void Init(IDictionary parameters, string configFile) { }     public bool IsSnapshotAvailable(string itemName) { return false; }     public void SetListener(IItemEventListener eventListener) { _listener = eventListener; }     public void Subscribe(string itemName)     {         if (itemName.Equals(&quot;greetings&quot;)) { new Thread(new ThreadStart(Run)).Start(); }     }     public void Unsubscribe(string itemName) { if (itemName.Equals(&quot;greetings&quot;)) { go = false; } }     public void Run()     {         go = true;         int c = 0;         Random rand = new Random();         while (go)         {             IDictionary eventData = new Hashtable();             eventData[&quot;message&quot;] = c % 2 == 0 ? &quot;Hello&quot; : &quot;World&quot;;             eventData[&quot;timestamp&quot;] = DateTime.Now.ToString(&quot;s&quot;);             _listener.Update(&quot;greetings&quot;, eventData, false);             c++;             Thread.Sleep(1000 + rand.Next(2000));         }     } } <\/code><\/pre>\n<p>  <\/p>\n<h5>\u0417\u0430\u043f\u0443\u0441\u043a \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430<\/h5>\n<p>  \u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u0430\u044f \u0430\u043f\u043b\u0438\u043a\u0443\u0445\u0430  <\/p>\n<pre><code class=\"cs\">using System; using System.Net.Sockets; using Lightstreamer.DotNet.Server; public class DataAdapterLauncher {     public static void Main(string[] args)     {         string host = &quot;localhost&quot;;         int reqrepPort = 6661;         int notifPort = 6662;         try         {             DataProviderServer server = new DataProviderServer();             server.Adapter = new HelloWorldAdapter();             TcpClient reqrepSocket = new TcpClient(host, reqrepPort);             server.RequestStream = reqrepSocket.GetStream();             server.ReplyStream = reqrepSocket.GetStream();             TcpClient notifSocket = new TcpClient(host, notifPort);             server.NotifyStream = notifSocket.GetStream();             server.Start();             System.Console.WriteLine(&quot;Remote Adapter connected to Lightstreamer Server.&quot;);             System.Console.WriteLine(&quot;Ready to publish data...&quot;);         }         catch (Exception e)         {             System.Console.WriteLine(&quot;Could not connect to Lightstreamer Server.&quot;);             System.Console.WriteLine(&quot;Make sure Lightstreamer Server is started before this Adapter.&quot;);             System.Console.WriteLine(e);         }     } } <\/code><\/pre>\n<p>  <\/p>\n<h5>\u0417\u0430\u043b\u0438\u0432\u043a\u0430 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440<\/h5>\n<p>  \u0412 \u043f\u0430\u043f\u043a\u0435 \/Lightstreamer\/adapters\/ \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0432 \u043d\u0435\u0451 \/Lightstreamer\/DOCS-SDKs\/sdk_adapter_remoting_infrastructure\/lib\/ls-proxy-adapters.jar. \u0422\u0430\u043c \u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b \/lib\/adapters.xml \u0441 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u043e\u043c  <\/p>\n<pre><code class=\"xml\">&lt;?xml version=&quot;1.0&quot;?&gt; &lt;adapters_conf id=&quot;HelloWorld&quot;&gt;    &lt;metadata_provider&gt;       &lt;adapter_class&gt;com.lightstreamer.adapters.metadata.LiteralBasedProvider&lt;\/adapter_class&gt;    &lt;\/metadata_provider&gt;    &lt;data_provider&gt;       &lt;adapter_class&gt;com.lightstreamer.adapters.remote.data.RobustNetworkedDataProvider&lt;\/adapter_class&gt;       &lt;classloader&gt;log-enabled&lt;\/classloader&gt;       &lt;param name=&quot;request_reply_port&quot;&gt;       6661&lt;\/param&gt;       &lt;param name=&quot;notify_port&quot;&gt;       6662&lt;\/param&gt;    &lt;\/data_provider&gt; &lt;\/adapters_conf&gt; <\/code><\/pre>\n<p>  \u0418\u043c\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u2014 \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0438 \u0432\u0441\u0435. \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u043e\u0440\u0442\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u0436\u0435 \u043a\u0430\u043a \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430.<\/p>\n<h5>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430<\/h5>\n<p>  \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 JavaScript \u043a\u043b\u0438\u0435\u043d\u0442  <\/p>\n<pre><code class=\"html\">&lt;html&gt;    &lt;head&gt;       &lt;script src=&quot;http:\/\/cdnjs.cloudflare.com\/ajax\/libs\/require.js\/1.0.7\/require.min.js&quot;&gt;&lt;\/script&gt;       &lt;script src=&quot;https:\/\/code.jquery.com\/jquery-2.1.0.min.js&quot;&gt;&lt;\/script&gt;       &lt;script src=&quot;C:\/Lightstreamer\/DOCS-SDKs\/sdk_client_javascript\/lib\/lightstreamer.js&quot;&gt;&lt;\/script&gt;       &lt;script&gt;          require([&quot;LightstreamerClient&quot;,&quot;Subscription&quot;,&quot;StaticGrid&quot;],function(LightstreamerClient,Subscription,StaticGrid) {            var lsClient = new LightstreamerClient(&quot;http:\/\/localhost:8080&quot;, &quot;HelloWorld&quot;);            lsClient.connect();            var lsSubscription = new Subscription(&quot;MERGE&quot;,['greetings'],['greetings', 'message', 'timestamp']);            lsSubscription.addListener({              onItemUpdate: function(updateObject) {                $(&quot;#message&quot;).text('Message=' + updateObject.getValue(&quot;message&quot;));                $(&quot;#timestamp&quot;).text('TimeStamp=' + updateObject.getValue(&quot;timestamp&quot;));              }            });            lsClient.subscribe(lsSubscription);          });       &lt;\/script&gt;    &lt;\/head&gt;    &lt;body&gt;       &lt;span id=&quot;message&quot;&gt;&lt;\/span&gt;&lt;br\/&gt;       &lt;span id=&quot;timestamp&quot;&gt;       &lt;\/span&gt;    &lt;\/body&gt; &lt;\/html&gt; <\/code><\/pre>\n<p>  <\/p>\n<h5>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/h5>\n<p>  \u0418 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/04e\/3bd\/9e7\/04e3bd9e77449a20c0734492101cdff9.gif\" alt=\"image\"\/><br \/>  \u0427\u0442\u043e \u0431\u044b \u043a\u043b\u0438\u0435\u043d\u0442 \u043c\u043e\u0433 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u043a \u043d\u0435\u043c\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u0447\u0430\u0442\u0435, \u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e &#8216;greetings&#8217; (\u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440) \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0430\u0439\u0434\u0438\u0448\u043a\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u043f\u043e \u044d\u0442\u043e\u0439 \u0430\u0439\u0434\u0438\u0448\u043a\u0435 \u0432\u044b\u0433\u0440\u0435\u0431\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.  <\/p>\n<pre><code class=\"javascript\">new Subscription(&quot;MERGE&quot;,['userID123'],['greetings', 'message', 'timestamp']) <\/code><\/pre>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u044f\u0442\u043e\u0439, \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u044c\u0435\u043c \u0438 \u0442\u0434. \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u0432\u0441\u0451 \u044d\u0442\u043e \u043f\u0430\u0440\u0441\u0438\u0442\u044c.<br \/>  \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e\u043c \u0434\u0435\u0431\u0430\u0433\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u0443\u0434\u0438\u0438 \u043d\u0435\u0442 \u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u043b \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043c\u0435\u0441\u0442\u043e localhost \u0432 DataAdapterLauncher \u043a\u043b\u0430\u0441\u0441\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u043c\u0430\u0448\u0438\u043d\u044b \u0433\u0434\u0435 \u0441\u0442\u043e\u0438\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0438\u043c\u0435\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0430\u043a\u0430 \u0434\u0435\u0431\u0430\u0436\u0438\u0442\u044c.  <\/p>\n<h5>\u041d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a<\/h5>\n<p>  \u0421\u0443\u0434\u044f \u043f\u043e <a href=\"http:\/\/www.lightstreamer.com\/doc\">www.lightstreamer.com\/doc<\/a> \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430:  <\/p>\n<ul>\n<li>Java <\/li>\n<li>.NET<\/li>\n<li> Node js<\/li>\n<\/ul>\n<p>  \u0410 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u0431\u043e\u043b\u044c\u0448\u0435:  <\/p>\n<ul>\n<li>avaScript<\/li>\n<li>Android<\/li>\n<li>iOS<\/li>\n<li>Windows Phone<\/li>\n<li>WinRT<\/li>\n<li>BlackBerry<\/li>\n<li>Java ME<\/li>\n<li>Flash<\/li>\n<li>Flex<\/li>\n<li>Silverlight<\/li>\n<li>.NET<\/li>\n<li>Java SE<\/li>\n<li>OS X<\/li>\n<\/ul>\n<p>  P.S.<br \/>  \u0421\u043e\u0440\u0441\u044b \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043d\u0430 <a href=\"https:\/\/github.com\/Weswit\/Lightstreamer-example-HelloWorld-adapter-dotnet\">github<\/a>&#8216;e. \t\t\t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/220343\/\"> http:\/\/habrahabr.ru\/post\/220343\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\"> \t\t\t<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/1f6\/6f7\/769\/1f66f7769b67fed9182253da92c53579.png\" align=\"left\"\/> \u0414\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442, \u043d\u0435 \u0432\u0430\u0436\u043d\u043e \u0431\u0443\u0434\u044c \u044d\u0442\u043e \u0432\u0435\u0431, \u043c\u043e\u0431\u0430\u0439\u043b \u0438\u043b\u0438 \u0434\u0435\u0441\u043a\u0442\u043e\u043f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0435\u0445\u043d\u0438\u043a. \u041d\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c \u0447\u0442\u043e \u043e\u043d\u0438 \u0432\u0441\u0435 \u0440\u0430\u0437\u043d\u044b\u0435 \u0438 \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0438 \u0442\u043e\u043c \u0436\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0438 \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0432\u0441\u0435\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445, \u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043a\u043e\u0434 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f. \u0412\u043e\u0442 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u0441\u044f \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439 \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043e\u0434\u043d\u0438\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <a href=\"http:\/\/www.lightstreamer.com\/\">LightStreamer<\/a>.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-220343","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/220343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=220343"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/220343\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=220343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=220343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=220343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}