﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tag Controller - Constellation</title>
	<atom:link href="https://developer.myconstellation.io/tag/controller/feed/" rel="self" type="application/rss+xml" />
	<link>https://developer.myconstellation.io/tag/controller/</link>
	<description>Votre plateforme d&#039;interconnexion</description>
	<lastBuildDate>Thu, 19 Apr 2018 07:40:29 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.11</generator>

<image>
	<url>https://developer.myconstellation.io/wp-content/uploads/2016/02/256x256-e1457476015859.png</url>
	<title>Tag Controller - Constellation</title>
	<link>https://developer.myconstellation.io/tag/controller/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Connectez vos pages Web à Constellation</title>
		<link>https://developer.myconstellation.io/getting-started/connectez-vos-pages-web-constellation/</link>
					<comments>https://developer.myconstellation.io/getting-started/connectez-vos-pages-web-constellation/#comments</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Wed, 06 Jul 2016 14:22:29 +0000</pubDate>
				<category><![CDATA[Guide de démarrage]]></category>
		<category><![CDATA[Javascript API]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[AngularJS]]></category>
		<category><![CDATA[Consumer]]></category>
		<category><![CDATA[Controller]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=2114</guid>

					<description><![CDATA[<p>Introduction Il existe actuellement deux librairies Constellation JavaScript : Constellation for Javascript Constellation for AngularJS La première est basée sur jQuery, la deuxième est une surcouche de la 1ère encapsulée dans un module AngularJS. Vous retrouverez ces deux librairies depuis</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/getting-started/connectez-vos-pages-web-constellation/">Connectez vos pages Web à Constellation</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Introduction</h3>
<p>Il existe actuellement deux librairies Constellation JavaScript :</p>
<ol>
<li>Constellation for Javascript</li>
<li>Constellation for AngularJS</li>
</ol>
<p>La première est basée sur jQuery, la deuxième est une surcouche de la 1ère encapsulée dans un module AngularJS.</p>
<p>Vous retrouverez ces deux librairies depuis le gestionnaire de package Nuget intégré à Visual Studio :</p>
<p align="center"><img class="colorbox-2114"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/07/image.png" alt="image" width="300" height="118" border="0" /></p>
<p>Chacune de ces deux librairies propose deux types de client :</p>
<ol>
<li>Consumer</li>
<li>Controller</li>
</ol>
<p>Le client “Consumer” permet de se connecter à Constellation en tant que “consommateur” pour pouvoir interroger des StateObjects et envoyer/recevoir des messages.</p>
<p>Le client “Controller” permet lui de se connecter à Constellation en tant que « contrôleur » pour récupérer par exemple en temps réel les logs produits par vos packages, arrêter/démarrer les packages, surveiller la consommation de ressources de chacun d&rsquo;entre eux, etc.</p>
<p>Dans ce guide nous allons utiliser le client « Consumer » afficher en temps réel le StateObject produit par le package <a href="/package-library/hwmonitor/">HWMonitor </a>représentant la consommation de votre CPU dans une page Web.</p>
<p>Pour cela vous devez avoir déployé le package “HWMonitor” sur au moins une de vos sentinelles (Windows).</p>
<h3>Etape 1 : ajouter la librairie Constellation</h3>
<h4>En utilisant le CDN</h4>
<p>Les librairies JavaScripts sont accessibles sur : <a href="http://cdn.myconstellation.io/js/">http://cdn.myconstellation.io/js/</a> (en HTTP ou HTTPS).</p>
<p>De ce fait, vous pouvez créer une simple pages HTML et ajoutez dans l’entête les balises suivantes :</p>
<p></p><pre class="crayon-plain-tag">&lt;script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/signalr/jquery.signalr-2.2.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="https://cdn.myconstellation.io/js/Constellation-1.8.2.min.js"&gt;&lt;/script&gt;</pre><p></p>
<p>Si vous souhaitez connecter votre page à Constellation en utilisant le framework AngularJS :</p>
<p></p><pre class="crayon-plain-tag">&lt;script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/signalr/jquery.signalr-2.2.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="https://cdn.myconstellation.io/js/Constellation-1.8.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="https://cdn.myconstellation.io/js/ngConstellation-1.8.2.min.js"&gt;&lt;/script&gt;</pre><p></p>
<h4>Par Nuget en utilisant Visual Studio</h4>
<p>Créez une application Web vide dans Visual Studio et ouvrez le gestionnaire de package NuGet.</p>
<p>En sélectionnant la source “Constellation”, installez le package Nuget “Constellation.Javascript” :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/08/image-12.png"><img class="colorbox-2114"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/08/image_thumb-12.png" alt="image" width="354" height="122" border="0" /></a></p>
<p align="left">Une fois installée vous obtiendrez dans le dossier “Scripts” de votre projet Web les librairies jQuery, SignalR et Constellation :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/08/image-13.png"><img class="colorbox-2114"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/08/image_thumb-13.png" alt="image" width="244" height="224" border="0" /></a></p>
<p align="left">Créez ensuite une page Web (HTML ou ASPX) et dans l’entête de votre code HTML référencez les scripts (à adapter en fonction des n° de version des librairies contenues dans les packages Nuget) :</p>
<p></p><pre class="crayon-plain-tag">&lt;script type="text/javascript" src="Scripts/jquery-2.2.4.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="Scripts/jquery.signalR-2.2.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="Scripts/Constellation-1.8.2.js"&gt;&lt;/script&gt;</pre><p></p>
<h3>Etape 2 : Initialiser le client</h3>
<p>Tout d’abord il faut déterminer la clé d’accès qui sera utilisée par votre page. Ici, depuis la Console Constellation, nous créons un credential “DemoWeb” avec la clé d&rsquo;accès “123456789” :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/08/image-14.png"><img class="colorbox-2114"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/08/image_thumb-14.png" alt="image" width="354" height="141" border="0" /></a></p>
<p align="left">Dans notre page HTML, créons un client “Consumer” en spécifiant l’URI de notre Constellation, la clé d’accès utilisée pour se connecter et le “friendly name” de votre client :</p>
<p></p><pre class="crayon-plain-tag">var constellation = $.signalR.createConstellationConsumer("http://localhost:8088", "123456789", "Test API JS");</pre><p></p>
<h3>Etape 3 : Etablir la connexion à Constellation</h3>
<p>Ajoutons un handler sur le changement d’état de la connection pour afficher le message “Je suis connecté” dans la console de votre navigateur :</p>
<p></p><pre class="crayon-plain-tag">constellation.connection.stateChanged(function (change) {
    if (change.newState === $.signalR.connectionState.connected) {
        console.log("Je suis connecté");
    }
});</pre><p></p>
<p>Pour finir lançons la connexion en invoquant la méthode Start :</p>
<p></p><pre class="crayon-plain-tag">constellation.connection.start();</pre><p></p>
<p>Testons la page dans Chrome par exemple :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/08/image-15.png"><img class="colorbox-2114"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/08/image_thumb-15.png" alt="image" width="354" height="77" border="0" /></a></p>
<h3>Etape 4 : Afficher le contenu d’un StateObject en temps réel</h3>
<p>Dans notre cas nous voulons afficher en temps réel la consommation CPU de notre sentinelle.</p>
<p>Ce StateObject se nomme “/intelcpu/0/load/0” et est produit par le package “HWMonitor” que vous aurez pris le soin de déployer sur une de vos sentinelles (ici ma sentinelle se nomme “PO-SWARIN”) :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/08/image-16.png"><img class="colorbox-2114"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/08/image_thumb-16.png" alt="image" width="244" height="176" border="0" /></a></p>
<p align="left">On peut donc enregistrer un “StateObjectLink” avec la méthode “registerStateObjectLink” en demandant un filtre sur la sentinelle nommée “MON-PC”, le package “HWMonitor” et le nom “/intelcpu/load/0” (le dernier argument de cette méthode correspond au type du StateObject, ici ”*” indique qu’il n’y a pas de filtre sur le type) et en indiquant la fonction à invoquer à chaque mise à jour du et des StateObjects liés, ici mettre à jour un &lt;span&gt; de la page.</p>
<p>Vous devez impérativement faire cet enregistrement lorsque vous êtes connecté, c’est à dire lorsque le handler “stateChanged” est invoqué avec l’état “Connected”.</p>
<p>Le code final sera donc :</p>
<p></p><pre class="crayon-plain-tag">constellation.connection.stateChanged(function (change) {
    if (change.newState === $.signalR.connectionState.connected) {
        console.log("Je suis connecté");
        constellation.client.registerStateObjectLink("MON-PC", "HWMonitor", "/intelcpu/0/load/0", "*", function (so) {
            console.log(so);
            $("#cpu").text(so.Value.Value);
        });
    }
});</pre><p></p>
<p>Dès que le StateObject est réceptionné par notre page nous affectons la propriété “Value” de la valeur du StateObject comme contenu du span “cpu” de la page. De ce fait, ajoutons un “span” nommé “cpu” dans le corps de notre page :</p>
<p></p><pre class="crayon-plain-tag">&lt;body&gt;
    &lt;span id="cpu"&gt;&lt;/span&gt; %
&lt;/body&gt;</pre><p></p>
<p>Ainsi vous aurez en temps réel votre CPU dans une page HTML grâce à l’exploitation du StateObject ici produit par le package HWMonitor :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/08/image-17.png"><img class="colorbox-2114"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/08/image_thumb-17.png" alt="image" width="354" height="71" border="0" /></a></p>
<p align="left">Vous remarquerez que dans le handler ci-dessus nous loguons également l’objet “stateobject” réceptionné par notre page.</p>
<p align="left">Cet objet contient les différentes propriétés du StateObject : la sentinelle et le package qui ont produit ce StateObject, le nom du StateObject, son type, sa durée de vue (ici “lifetime=0” donc n’expire jamais), la date de mise à jour du StateObject, ses métadonnées et surtout sa valeur (propriété “Value”).</p>
<p align="left">Ici la valeur de ce StateObject produit par le package “HWMonitor” est un objet complexe (entouré en vert) qui contient différentes propriétés :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/08/image-18.png"><img class="colorbox-2114"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/08/image_thumb-18.png" alt="image" width="354" height="248" border="0" /></a></p>
<p align="left">Pour la suite je vous recommande vivement l’utilisation du framework AngularJS permettant de développer des pages plus facilement.</p>
<h3>Next step</h3>
<ul>
<li><a href="/client-api/javascript-api/consommer-constellation-api-javascript/">Consommer Constellation avec l’API Javascript</a></li>
<li><a href="/client-api/javascript-api/consommer-constellation-angular-js/">Consommer Constellation avec Angular JS</a></li>
<li><a href="/client-api/javascript-api/controler-constellation-api-javascript/">Contrôler votre Constellation en Javascript</a></li>
<li><a href="/client-api/javascript-api/application-mobile-multi-plateforme-avec-cordova-et-javascript/">Créer une application mobile multi-plateforme avec Cordova et l’API Javascript</a></li>
<li><a href="/client-api/javascript-api/application-mobile-multi-plateforme-avec-ionic-et-angular-js/">Créer une application mobile multi-plateforme avec Ionic et Angular JS</a></li>
<li><a href="/client-api/javascript-api/creer-application-montre-samsung-gear-tizen-angularjs/">Créer une application pour une montre Samsung Gear avec Tizen et AngularJS</a></li>
</ul>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/getting-started/connectez-vos-pages-web-constellation/">Connectez vos pages Web à Constellation</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/getting-started/connectez-vos-pages-web-constellation/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Les différents hubs et interfaces REST du serveur Constellation</title>
		<link>https://developer.myconstellation.io/concepts/les-differents-hubs-et-interfaces-rest-du-serveur-constellation/</link>
					<comments>https://developer.myconstellation.io/concepts/les-differents-hubs-et-interfaces-rest-du-serveur-constellation/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Fri, 12 Aug 2016 14:19:15 +0000</pubDate>
				<category><![CDATA[Concepts]]></category>
		<category><![CDATA[Package]]></category>
		<category><![CDATA[Hub]]></category>
		<category><![CDATA[Sentinel]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Consumer]]></category>
		<category><![CDATA[Controller]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=2279</guid>

					<description><![CDATA[<p>Le serveur Constellation est accessible en HTTP ou HTTPS sur une ou plusieurs URIs. Il héberge des hubs et des interfaces HTTP/REST. De plus il peut également héberger des fichiers statiques en configurant le “fileServer” ce qui permet par exemple</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/concepts/les-differents-hubs-et-interfaces-rest-du-serveur-constellation/">Les différents hubs et interfaces REST du serveur Constellation</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Le serveur Constellation est accessible en HTTP ou <a href="/constellation-platform/constellation-server/configuration-ssl/">HTTPS</a> sur <a href="/constellation-platform/constellation-server/fichier-de-configuration/#Section_listenUris">une ou plusieurs URIs</a>.</p>
<p>Il héberge des hubs et des interfaces HTTP/REST. De plus il peut également héberger des fichiers statiques en configurant le “<a href="/constellation-platform/constellation-server/fichier-de-configuration/#Section_fileServer">fileServer</a>” ce qui permet par exemple l’auto-hébergement de la console Constellation (<a href="/constellation-platform/constellation-server/fichier-de-configuration/#Section_fileServer">plus d’info ici</a>).</p>
<p>Les hubs Constellation sont basés sur la technologie SignalR permettant d&rsquo;exposer des canaux de communication bi-directionnels et temps réel en HTTP long-polling, server-event ou WebSocket en fonction des capacités du client.</p>
<p>Les interfaces HTTP/REST sont en fait des contrôleurs WebAPI exposant des méthodes en HTTP/REST. Les interfaces HTTP/REST permettent d’exposer des fonctionnalités de Constellation de manière très simple pour les devices ou frameworks ne pouvant supporter SignalR.</p>
<p>Il existe 4 hubs :</p>
<ul>
<li>Constellation</li>
<li>Consumer</li>
<li>Controller</li>
<li>Sentinel</li>
</ul>
<p>Ainsi que 3 interfaces HTTP/REST :</p>
<ul>
<li>Constellation</li>
<li>Consumer</li>
<li>Management</li>
</ul>
<p>Le hub et l’interface HTTP “Constellation” sont utilisés par les packages Constellation (réels ou virtuels). Ils exposent des méthodes pour écrire des logs, pour récupérer les settings, pour publier ou interroger des StateObjects, envoyer ou recevoir des messages, etc…</p>
<p>Le hub et l’interface HTTP “Consumer” sont utilisés par les “consommateurs”. Par exemple une page Web est un consommateur, c’est à dire qu’elle se connecte à Constellation pour interroger des StateObjects ou envoyer/recevoir des messages mais elle n’est pas un package (son cycle de vie est lié au navigateur du client). Un “consommateur” ne peut pas produire des logs, avoir de settings ou encore publier des StateObjects.</p>
<p>Le hub “Controller” expose des méthodes pour contrôler la Constellation comme arrêter/démarrer des packages, s’abonner et récupérer en temps réel les logs des packages de la Constellation, propager les changements de configuration dans la Constellation, suivre les états et consommation des ressources des packages, etc… Ce hub est notamment utilisé par la Console Constellation pour vous fournir une interface de pilotage de votre Constellation. Pour pouvez également vous connecter et exploiter les fonctionnalités de contrôle de <a href="/client-api/javascript-api/controler-constellation-api-javascript/">vos pages Web</a> ou <a href="/client-api/net-package-api/controlmanager/">packages .NET</a>.</p>
<p>Le hub “Sentinel” est un hub privé réservé aux sentinelles de la Constellation. C’est sur ce hub que les sentinelles s’enregistrent, remontent les états des packages qu’elles supervisent, etc…</p>
<p>Enfin l’interface HTTP “Management” aussi nommée “Management API” est une API HTTP/REST de management du serveur permettant la gestion des sentinelles, des packages, des settings, des credentials, etc… Cette API est notamment utilisée par la Console Constellation pour vous fournir une interface d&rsquo;administration de votre Constellation.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/concepts/les-differents-hubs-et-interfaces-rest-du-serveur-constellation/">Les différents hubs et interfaces REST du serveur Constellation</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/concepts/les-differents-hubs-et-interfaces-rest-du-serveur-constellation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Contrôler votre Constellation en Javascript</title>
		<link>https://developer.myconstellation.io/client-api/javascript-api/controler-constellation-api-javascript/</link>
					<comments>https://developer.myconstellation.io/client-api/javascript-api/controler-constellation-api-javascript/#respond</comments>
		
		<dc:creator><![CDATA[Sebastien Warin]]></dc:creator>
		<pubDate>Thu, 18 Aug 2016 14:48:37 +0000</pubDate>
				<category><![CDATA[Javascript API]]></category>
		<category><![CDATA[StateObject]]></category>
		<category><![CDATA[Package]]></category>
		<category><![CDATA[ControlHub]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PurgeStateObject]]></category>
		<category><![CDATA[PackageDescriptor]]></category>
		<category><![CDATA[AngularJS]]></category>
		<category><![CDATA[Controller]]></category>
		<category><![CDATA[Hub]]></category>
		<guid isPermaLink="false">https://developer.myconstellation.io/?p=2329</guid>

					<description><![CDATA[<p>Le hub de contrôle expose des méthodes pour contrôler la Constellation comme arrêter/démarrer des packages, s’abonner et récupérer en temps réel les logs des packages de la Constellation, propager les changements de configuration dans la Constellation, suivre les états et</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/client-api/javascript-api/controler-constellation-api-javascript/">Contrôler votre Constellation en Javascript</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Le <a href="/concepts/les-diffrents-types-de-hub-et-interfaces-rest-du-serveur-constellation/">hub de contrôle</a> expose des méthodes pour contrôler la Constellation comme arrêter/démarrer des packages, s’abonner et récupérer en temps réel les logs des packages de la Constellation, propager les changements de configuration dans la Constellation, suivre les états et la consommation de ressource des packages, etc…</p>
<p>Les deux librairies JavaScript Constellation intègrent un client permettant de se connecter sur ce hub afin de pouvoir piloter votre Constellation. La Console Constellation est d’ailleurs basée sur ce client.</p>
<p>Dans cet article découvrons les fonctionnalités de ce client avec l’API JavaScript et l’API AngularJS.</p>
<h3>Connecter une page HTML au hub de contrôle</h3>
<h4>Etape 1 : Ajouter les librairies</h4>
<h5>En utilisant le CDN</h5>
<p>Les librairies JavaScripts sont accessibles sur : <a href="http://cdn.myconstellation.io/js/">http://cdn.myconstellation.io/js/</a> (en HTTP ou HTTPS).</p>
<p>Pour utiliser la librairie JavaScript :</p>
<p></p><pre class="crayon-plain-tag">&lt;script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/signalr/jquery.signalr-2.2.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="https://cdn.myconstellation.io/js/Constellation-1.8.2.min.js"&gt;&lt;/script&gt;</pre><p></p>
<p>Ou si vous souhaitez l&rsquo;utiliser avec le framework AngularJS :</p>
<p></p><pre class="crayon-plain-tag">&lt;script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/signalr/jquery.signalr-2.2.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="https://cdn.myconstellation.io/js/Constellation-1.8.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="https://cdn.myconstellation.io/js/ngConstellation-1.8.2.min.js"&gt;&lt;/script&gt;</pre><p></p>
<h5>Par Nuget en utilisant Visual Studio</h5>
<p>Dans Visual Studio et ouvrez le gestionnaire de package NuGet.</p>
<p>En sélectionnant la source “Constellation”, installez le package Nuget “Constellation.Javascript” pour l’API JavaScript ou “Constellation.AngularJS” pour l’API AngularJS :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/08/image-12.png"><img class="colorbox-2329"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/08/image_thumb-12.png" alt="image" width="354" height="122" border="0" /></a></p>
<h4>Etape 2 : Connexion au hub de contrôle</h4>
<p>Avec l’API JavaScript (JS) vous devez créer le client avec la méthode “createConstellationController” en spécifiant l’URL de votre Constellation, une clé d’accès et un friendly name :</p>
<p></p><pre class="crayon-plain-tag">var controller = $.signalR.createConstellationController("http://localhost:8088", "123456789", "TestAPI");
controller.connection.stateChanged(function (change) {
  if (change.newState === $.signalR.connectionState.connected) {
    console.log("Connected to the ControlHub");
  }
});
controller.connection.start();</pre><p></p>
<p>Avec l’API AngularJS (NG), vous devez injecter le client “constellationController” dans votre contrôleur puis l’initialiser avec la méthode “initializeClient” en spécifiant l’URL de votre Constellation, une clé d’accès et un friendly name :</p>
<p></p><pre class="crayon-plain-tag">var demo = angular.module('demoApp', ['ngConstellation']);
demo.controller('MyController', ['$scope',  'constellationController', function ($scope, controller) {

  controller.initializeClient("http://localhost:8088", "123456789", "TestAPI");
    
  controller.onConnectionStateChanged(function (change) {
    if (change.newState === $.signalR.connectionState.connected) {
      console.log("Connected to the ControlHub");
    }
  });
    
  controller.connect();
}]);</pre><p></p>
<p>La clé d’accès (<a href="/concepts/securite-accesskey-credential-authorization/">AccessKey</a>) utilisée pour se connecter au hub de contrôle doit avoir l’attribut “enableControlHub” à “true”. Vous pouvez <a href="/constellation-platform/constellation-console/gerer-credentials-avec-la-console-constellation/">gérer les credentials dans la Console Constellation</a> ou dans <a href="/constellation-platform/constellation-server/fichier-de-configuration/#Section_credentials">le fichier de configuration</a>.</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-35.png"><img class="colorbox-2329"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-34.png" alt="image" width="350" height="287" border="0" /></a></p>
<h3>Superviser les sentinelles</h3>
<p>Vous disposez de deux méthodes :</p>
<ul>
<li>requestSentinelsList() : pour recevoir la liste des sentinelles de votre Constellation</li>
<li>requestSentinelUpdates() : pour recevoir toutes les mises à jour des sentinelles de votre Constellation (ajout ou suppression de sentinelles, connexion ou déconnexion des sentinelles, mise à jour des informations, etc…).</li>
</ul>
<p>Ces deux méthodes sont de type “void”. Les réponses sont réceptionnées par les handlers respectivement nommés ”onUpdateSentinelsList” et “onUpdateSentinel”.</p>
<ul>
<li>Avec l’API JS :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.client.onUpdateSentinelsList(function (list) {
  console.log(list);
});

controller.client.onUpdateSentinel(function (sentinel) {
  console.log(sentinel);
});

controller.connection.onConnectionStateChanged(function (change) {
  if (change.newState === $.signalR.connectionState.connected) {
    controller.server.requestSentinelsList();
    controller.server.requestSentinelUpdates();
  }
}</pre><p></p>
<ul>
<li>Avec l’API NG :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.onUpdateSentinelsList (function (list) {
  console.log(list);
});

controller.onUpdateSentinel  (function (se) {
  console.log(se);
});

controller.onConnectionStateChanged(function (change) {
  if (change.newState === $.signalR.connectionState.connected) {
    controller.requestSentinelsList();
    controller.requestSentinelUpdates ();
  }
});</pre><p></p>
<p>Par exemple utilisons l’API NG pour créer une page affichant l’ensemble des sentinelles avec leur statuts en temps dans une page :</p>
<p>Dans le code du contrôleur, ajoutons un handler sur la mise à jour sentinelle afin de stocker les objets “sentinelle” dans une variable  de scope :</p>
<p></p><pre class="crayon-plain-tag">$scope.sentinels = {};
controller.onUpdateSentinel  (function (sentinel) {
  $scope.$apply(function() {
    $scope.sentinels[sentinel.Description.SentinelName.replace("-", "")] = sentinel;
  });
});</pre><p></p>
<p>Nous sommes obligé de faire un “<em>replace(« -« , «  »)</em>” car nous utilisons le nom de la sentinelle comme nom pour la propriété de notre variable de scope, or en JavaScript une propriété ou variable ne peut pas comporter de “-“.</p>
<p>Lors de la connexion, abonnons-nous aux mises à jour des sentinelles afin de maintenir notre page à jour :</p>
<p></p><pre class="crayon-plain-tag">controller.onConnectionStateChanged(function (change) {
  if (change.newState === $.signalR.connectionState.connected) {
    console.log("Connected to the ControlHub");
    controller.requestSentinelUpdates ();
  }
});</pre><p></p>
<p>Enfin dans le template HTML affichons nos différentes sentinelles dans une simple liste à puce :</p>
<p></p><pre class="crayon-plain-tag">&lt;ul&gt;
  &lt;li ng-repeat="s in sentinels"&gt;{{s.Description.SentinelName}} [{{s.IsConnected ? "CONNECTED" : "DISCONNECTED"}}] ({{s.Description.OSVersion}})&lt;/li&gt;
&lt;/ul&gt;</pre><p></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-36.png"><img class="colorbox-2329"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-35.png" alt="image" width="350" height="160" border="0" /></a></p>
<p>Veuillez noter que seule les sentinelles “<a href="/concepts/sentinels-packages-virtuels/">réelles</a>” qui se sont connectées au moins une fois peuvent être récupérer car cette technique. Pour les sentinelles qui ne se sont jamais connectées comme pour les <a href="/concepts/sentinels-packages-virtuels/">sentinelles virtuelles</a>, vous devez lire le fichier de configuration en utilisant l’API REST de Management (Management API).</p>
<p>Voici la structure de l’objet ”sentinelle” :</p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-37.png"><img class="colorbox-2329"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-36.png" alt="image" width="350" height="128" border="0" /></a></p>
<h3>Superviser les packages</h3>
<p>Une fois la liste de vos sentinelles connue, vous pouvez récupérer la liste des packages pour chaque sentinelle en invoquant la méthode “requestPackagesList “ et en ajoutant un handler sur le “onUpdatePackageList”.</p>
<ul>
<li>Avec l’API JS :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.client.onUpdatePackageList (function (list) {
  console.log(list);
});
controller.server.requestPackagesList("MySentinel");</pre><p></p>
<ul>
<li>Avec l’API NG :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.onUpdatePackageList (function (list) {
  console.log(list);
});
controller.requestPackagesList("MySentinel");</pre><p></p>
<p>Reprenons notre page ci-dessus et ajoutons la liste des packages pour chaque sentinelle de notre Constellation.</p>
<p>Dans le handler “onUpdateSentinel” défini dans la section précédente, demandons au hub de contrôle la liste des packages pour chaque sentinelle :</p>
<p></p><pre class="crayon-plain-tag">controller.onUpdateSentinel  (function (sentinel) {
  $scope.$apply(function() {
    $scope.sentinels[sentinel.Description.SentinelName.replace("-", "")] = sentinel;
  });
  controller.requestPackagesList(sentinel.Description.SentinelName);
});</pre><p></p>
<p>Et ajoutons dans notre scope le handler “onUpdatePackageList” de manière à ajouter la liste des packages dans une propriété “Packages” que nous ajouterons dans nos objets “sentinelles” :</p>
<p></p><pre class="crayon-plain-tag">controller.onUpdatePackageList (function (p) {
  $scope.$apply(function() {
    $scope.sentinels[p.SentinelName.replace("-", "")]["Packages"] = p.List;
  });
});</pre><p></p>
<p>Nous pouvons maintenant enrichir notre template pour afficher les packages de chacune de nos sentinelles :</p>
<p></p><pre class="crayon-plain-tag">&lt;ul&gt;
  &lt;li ng-repeat="s in sentinels"&gt;{{s.Description.SentinelName}} [{{s.IsConnected ? "CONNECTED" : "DISCONNECTED"}}] ({{s.Description.OSVersion}})
    &lt;ul&gt;
      &lt;li ng-repeat="p in s.Packages"&gt;{{p.Package.Name}} version {{p.PackageVersion}} [{{p.State}}]&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;</pre><p></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-38.png"><img class="colorbox-2329"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-37.png" alt="image" width="350" height="433" border="0" /></a></p>
<h3>Surveiller l’état et la consommation des packages</h3>
<p>La liste de package récupérée ci-dessus n’est pas maintenue à jour. Pour recevoir les mises à jour de vos packages afin d’être notifié de chaque changement d’état vous pouvez ajouter le handler “onReportPackageState”.</p>
<p>De plus vous pouvez aussi vous abonner aux informations de consommation des ressources de vos packages avec le handler “onReportPackageUsage”.</p>
<ul>
<li>Avec l’API JS :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.client.onReportPackageUsage  (function (usage) {
  console.log(usage);
});

controller.client.onReportPackageState  (function (usage) {
  console.log(usage);
});</pre><p></p>
<ul>
<li>Avec l’API NG :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.onReportPackageUsage  (function (usage) {
  console.log(usage);
});

controller.onReportPackageState  (function (usage) {
  console.log(usage);
});</pre><p></p>
<p>Par exemple ajoutons dans notre page la consommation de CPU et de RAM pour chaque package de notre Constellation :</p>
<p></p><pre class="crayon-plain-tag">controller.onReportPackageUsage(function (usage) {
  $scope.$apply(function() {
    var sentinelName = usage.SentinelName.replace("-", "");
    for(var idx in $scope.sentinels[sentinelName].Packages) {
      var p = $scope.sentinels[sentinelName].Packages[idx];
      if(p.Package.Name == usage.PackageName) {
        p["CPU"] = usage.CPU;
        p["RAM"] = usage.RAM;
      }
    }
  });
});</pre><p></p>
<p>Dans le code ci-dessus, on ajoute dans chaque objet “Package” la valeur de la consommation du CPU et de RAM.</p>
<p>Ainsi on peut enrichir le template HTML avec le code :</p>
<p></p><pre class="crayon-plain-tag">&lt;ul&gt;
  &lt;li ng-repeat="s in sentinels"&gt;{{s.Description.SentinelName}} [{{s.IsConnected ? "CONNECTED" : "DISCONNECTED"}}] ({{s.Description.OSVersion}})
    &lt;ul&gt;
      &lt;li ng-repeat="p in s.Packages"&gt;{{p.Package.Name}} version {{p.PackageVersion}} [{{p.State}}]
        &lt;ul&gt;
          &lt;li&gt;CPU: {{p.CPU | number : 0 }}% - RAM: {{p.RAM / 1024 / 1024 | number: 0}}Mo&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;</pre><p></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-39.png"><img class="colorbox-2329"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-38.png" alt="image" width="350" height="452" border="0" /></a></p>
<h3>Contrôler les packages</h3>
<p>Pour contrôler les instances de package vous disposez des méthodes suivantes :</p>
<ul>
<li><em>start(sentinelName, packageName)</em> : démarre un package</li>
<li><em>stop(sentinelName, packageName)</em> : arrête un package</li>
<li><em>restart(sentinelName, packageName)</em> : redémarre un package</li>
<li><em>reload(sentinelName, packageName)</em> : arrête un package, force la sentinelle à télécharger la dernière version du package sur le serveur et redémarre le package</li>
<li><em>updatePackageSettings(sentinelName, packageName)</em> : pousse les settings d’un package au package en cours de fonctionnement (à charge au package à prendre en compte ses nouveaux paramètres).</li>
</ul>
<p>Avec l’API JS :</p>
<p></p><pre class="crayon-plain-tag">controller.server.start(sentinelName, packageName);
controller.server.stop(sentinelName, packageName);
controller.server.restart(sentinelName, packageName);
controller.server.reload(sentinelName, packageName);
controller.server.updatePackageSettings(sentinelName, packageName);</pre><p></p>
<p>Avec l’API NG :</p>
<p></p><pre class="crayon-plain-tag">controller.start(sentinelName, packageName);
controller.stop(sentinelName, packageName);
controller.restart(sentinelName, packageName);
controller.reload(sentinelName, packageName);
controller.updatePackageSettings(sentinelName, packageName);</pre><p></p>
<p>Par exemple ajoutons dans notre page la possibilité de piloter les packages.</p>
<p>Pour ce faire exposons notre client “controller” dans le scope Angular de façon à pouvoir l’utiliser dans le template HTML :</p>
<p></p><pre class="crayon-plain-tag">$scope.controller = controller;</pre><p></p>
<p>Dans notre template ajoutons ensuite des boutons en spécifiant l&rsquo;action du clic grâce à l&rsquo;attribut “ng-click” :</p>
<p></p><pre class="crayon-plain-tag">&lt;button ng-click="controller.start(s.Description.SentinelName, p.Package.Name)"&gt;Start&lt;/button&gt;
&lt;button ng-click="controller.stop(s.Description.SentinelName, p.Package.Name)"&gt;Stop&lt;/button&gt;
&lt;button ng-click="controller.reload(s.Description.SentinelName, p.Package.Name)"&gt;Reload&lt;/button&gt;
&lt;button ng-click="controller.restart(s.Description.SentinelName, p.Package.Name)"&gt;Restart&lt;/button&gt;</pre><p></p>
<p>Pour aller plus loin on peut également afficher/cacher les boutons en fonction de l’état du package, par exemple ne pas afficher le bouton “Start” si le package est déjà démarré :</p>
<p></p><pre class="crayon-plain-tag">&lt;button ng-hide="p.State == 'Started'" ng-click="controller.start(s.Description.SentinelName, p.Package.Name)"&gt;Start&lt;/button&gt;
&lt;button ng-show="p.State == 'Started'" ng-click="controller.stop(s.Description.SentinelName, p.Package.Name)"&gt;Stop&lt;/button&gt;
&lt;button ng-click="controller.reload(s.Description.SentinelName, p.Package.Name)"&gt;Reload&lt;/button&gt;
&lt;button ng-show="p.State == 'Started'" ng-click="controller.restart(s.Description.SentinelName, p.Package.Name)"&gt;Restart&lt;/button&gt;</pre><p></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-40.png"><img class="colorbox-2329"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-39.png" alt="image" width="350" height="261" border="0" /></a></p>
<h3>S’abonner aux logs de Constellation</h3>
<p>Pour récupérer les logs produits par les packages (virtuels ou non) en temps réel dans votre page Web, vous devez ajouter un handler sur “onReceiveLogMessage”.</p>
<ul>
<li>Avec l’API JS :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.client.onReceiveLogMessage(function (log) {
  console.log(log);
});</pre><p></p>
<ul>
<li>Avec l’API NG :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.onReceiveLogMessage(function (log) {
  console.log(log);
});</pre><p></p>
<p>Par exemple ajoutons à notre page la capacité d’afficher les logs des packages de notre Constellation en temps réel.</p>
<p>Pour cela nous allons nous abonner aux logs et les stocker dans un tableau de notre scope Angular :</p>
<p></p><pre class="crayon-plain-tag">$scope.logs = [];
controller.onReceiveLogMessage(function (log) {
  $scope.$apply(function() {
    $scope.logs.push(log);
  });
});</pre><p></p>
<p>Nous pouvons donc maintenant afficher proprement nos logs dans notre template HTML :</p>
<p></p><pre class="crayon-plain-tag">&lt;ul&gt;
  &lt;li ng-repeat="log in logs"&gt;{{log.Date | date: 'dd/MM/yyyy HH:mm:ss' }} on {{log.SentinelName}}/{{log.PackageName}} : [{{ log.Level.toUpperCase() }}] {{log.Message}}&lt;/li&gt;
&lt;/ul&gt;</pre><p></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-41.png"><img class="colorbox-2329"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-40.png" alt="image" width="350" height="194" border="0" /></a></p>
<h3>Récupérer les PackageDescriptors</h3>
<p>Le <a href="/concepts/messaging-message-scope-messagecallback-saga/#Auto-description_des_MessageCallbacks">PackageDescriptor</a> est un objet publié par les packages qui permet de décrire les MessagesCallbacks que les packages exposent ainsi que les types utilisés dans leurs MC et StateObjects.</p>
<p>Pour récupérer un PackageDescriptor vous devez invoquer la méthode ”requestPackageDescriptor” en spécifiant le nom du package et attacher un handler “onUpdatePackageDescriptor” pour récupérer le résultat.</p>
<ul>
<li>Avec l’API JS :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.client.onUpdatePackageDescriptor(function (descriptor) {
  console.log(descriptor);
});

controller.server.requestPackageDescriptor(packageName);</pre><p></p>
<ul>
<li>Avec l’API NG :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.onUpdatePackageDescriptor(function (descriptor) {
  console.log(descriptor);
});

controller.requestPackageDescriptor(packageName);</pre><p></p>
<p>Par exemple sur notre page ci-dessus, ajoutons un bouton permettant d’afficher dans une simple boite de dialogue la liste des MessageCallbacks d’un package :</p>
<p>Dans le template HTML :</p>
<p></p><pre class="crayon-plain-tag">&lt;button ng-click="controller.requestPackageDescriptor(p.Package.Name)"&gt;Show MessageCallbacks&lt;/button&gt;</pre><p></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-42.png"><img class="colorbox-2329"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-41.png" alt="image" width="350" height="144" border="0" /></a></p>
<p align="left">Et dans le code de notre contrôleur, de manière grossière :</p>
<p></p><pre class="crayon-plain-tag">controller.onUpdatePackageDescriptor(function (descriptor) {
  var result = "Package "+ descriptor.PackageName + " :";
  for(var idx in descriptor.Descriptor.MessageCallbacks) {
    result += "\n - " + descriptor.Descriptor.MessageCallbacks[idx].MessageKey;
  }
  alert(result);          
});</pre><p></p>
<p align="center"><a href="https://developer.myconstellation.io/wp-content/uploads/2016/09/image-43.png"><img class="colorbox-2329"  loading="lazy" style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="https://developer.myconstellation.io/wp-content/uploads/2016/09/image_thumb-42.png" alt="image" width="350" height="195" border="0" /></a></p>
<p align="left">Une <a href="/client-api/rest-api/interface-rest-constellation/#Declarer_le_Package_Descriptor">description plus détaillée des PackageDesciptors</a> se trouve <a href="/client-api/rest-api/interface-rest-constellation/#Declarer_le_Package_Descriptor">ici</a>.</p>
<h3>Effacer des StateObjects</h3>
<p>Vous pouvez effacer des StateObjects en invoquant la méthode “purgeStateObjects” :</p>
<ul>
<li>Avec l’API JS :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.server.purgeStateObjects(sentinelName, packageName, name, type);</pre><p></p>
<ul>
<li>Avec l’API NG :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.purgeStateObjects(sentinelName, packageName, name, type);</pre><p></p>
<p>Vous devez indiquer les filtres de sélection des StateObjects à supprimer avec la possibilité d’utiliser le wildcard ”*” seulement pour les paramètres “name” et “type”. Autrement dit vous êtes obliger de spécifier le “sentinelName” et “packageName”.</p>
<h3>Rafraichir et déployer la configuration</h3>
<p>Vous pouvez recharger la configuration Constellation avec la méthode “reloadServerConfiguration” :</p>
<ul>
<li>Avec l’API JS :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.server.reloadServerConfiguration(deployConfiguration);</pre><p></p>
<ul>
<li>Avec l’API NG :</li>
</ul>
<p></p><pre class="crayon-plain-tag">controller.reloadServerConfiguration(deployConfiguration);</pre><p></p>
<p>Cette méthode attend un booléen (deployConfiguration) pour indiquer si oui ou non la configuration doit être déployée après son rechargement. Dans le cas d’un déploiement, la nouvelle configuration est envoyée à toutes les sentinelles et packages de votre Constellation.</p>
<p>The post <a rel="nofollow" href="https://developer.myconstellation.io/client-api/javascript-api/controler-constellation-api-javascript/">Contrôler votre Constellation en Javascript</a> appeared first on <a rel="nofollow" href="https://developer.myconstellation.io">Constellation</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://developer.myconstellation.io/client-api/javascript-api/controler-constellation-api-javascript/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Mise en cache de page à l’aide de Disk: Enhanced 

Served from: developer.myconstellation.io @ 2026-01-21 15:09:06 by W3 Total Cache
-->