J’en parle depuis longtemps, sur SL il FAUT du vrai HTML sur les prims pour pouvoir afficher des pages web directement inwolrd. Alors oui, a existe déjà, mais c’est figé impossible de vraiment surfer et en plus beaucoup de fonctionnalité ne sont pas supportées. C’est le cas pour Flash, Ajax etc…
J’en ai parlé à M Linden lors de sa venue à Paris mais il n’avait pas l’air bien décidé… Et puis hier soir je reçoit une notice qui me redonne espoir. Cette notice à été lancée par Gally Young(son blog est ici) sur le -fameux- groupe francophone C&S.

Cette notice annonçait l’arrivée prochaine de fonctions LSL, le langage de programmation de Second Life, permettant d’attribuer une page web par primitives(objets) permettant de convertir ses prims en mini serveurs web. Pas de pages web sur les prims mais une extension des fonctionnalités existantes de communication entre internet & SL (XMP-RPC).
Cette nouvelle fonction est prévue pour la version 1.27 prvue pour Juin 2009!

EDIT : Merci à ssm2017 pour ses correctifs & précisions

Les nouvelles fonctions qui seront disponibles sont :

<ul style="text-align: justify;">
  <li>
    key llRequestURL() => pour demander une URL à la sim
  </li>
</ul>

<ul style="text-align: justify;">
  <li>
    key llRequestSecureURL() => pour demander une URL sécurisée (Https / SSL)
  </li>
</ul>

<ul style="text-align: justify;">
  <li>
    llReleaseURL(string url) => pour libérer une URL
  </li>
</ul>

<ul style="text-align: justify;">
  <li>
    llHTTPResponse(key id, integer status, string body) => pour renvoyer les données de la page à charger
  </li>
</ul>

<ul style="text-align: justify;">
  <li>
    http_request(key id, string method, string body) => événement déclenché lorsqu&#8217;une requête HTML est reçue par le script.
  </li>
</ul>

<div style="text-align: justify;">
  Et quelques autres fonctions (llGetFreeURLs & llGetHTTPHeader)</p> 

  <p>
    Ces fonction sont disponible sur la grille &#8220;Beta&#8221; de Linden Labs.
  </p>

  <p>
    <b>Galy nous explique</b> comment faire pour afficher une page sur son prim :
  </p>

  <p>
    <i>Pour tester, il vous faut :</i><br /><i>1/ Rezez une prim dans une sim dont le nom commence par &#8220;Http in Sandbox&#8221;</i><br /><i>2/ Insérez ce script dans une prim (c&#8217;est le script le plus simple):</i>
  </p>

  <p>
    <i>default</i><br /><i>{</i><br /><i> state_entry()</i><br /><i> {</i><br /><i> llRequestURL();</i><br /><i> }</i>
  </p>

  <p>
    <i> http_request(key id, string method, string body)</i><br /><i> {</i><br /><i> if (method == URL_REQUEST_GRANTED)</i><br /><i> {</i><br /><i> llSay(0,&#8221;URL: &#8221; + body);</i><br /><i> }</i><br /><i> else if (method == &#8220;GET&#8221;)</i><br /><i> {</i><br /><i> llHTTPResponse(id,200,&#8221;Hello World!&#8221;);</i><br /><i> }</i><br /><i> }</i><br /><i>}</i>
  </p>

  <p>
    <i>3/ Une URL vous est communiquée, vous pouvez la tester dans votre navigateur et retrouver le message envoyé par llHTTPResponse&#8230; le fameux &#8220;Hello World!&#8221; </i>
  </p>

  <p>
    Comme prévue par Linden Labs, les scripts auront des restrictions. C&#8217;est en fait le cas pour TOUS les scripts, cette nouvelle fonction n&#8217;échappe pas à la règle&#8230;<br />Gally nous explique :
  </p>

  <p>
    Durée de vie des URL<br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />&#8211; Les URL sont temporaires, un script perd son URL si la prim est rez/derez, si le script est sauvegardé ou relancé, si la prim change de région ou si la région redémarre.<br />&#8211; si un script perd son URL, il devra en demander une nouvelle au simulateur.
  </p>

  <p>
    Les limites<br />&#8212;&#8212;&#8212;&#8211;<br />&#8211; Le nombre d&#8217;URL disponible par sim est limité et correspond au nombre de prims autorisées pour la parcelle, sauf que le bonus d&#8217;objet ne s&#8217;appliquera pas.<br />&#8211; La fonction llGetFreeURLs permettra de savoir combien d&#8217;URL sont disponibles sur la parcelle.<br />&#8211; chaque avatar présent pourra avoir jusqu&#8217;a 38 URL personnelles (1 par point d&#8217;attachement)<br />&#8211; Les véhicules prendront une URL disponible sur la parcelle ou dans la réserve des URLs des résidents.<br />&#8211; Si un résident n&#8217;a plus assez de sqm pour couvrir ses besoins en URL, les objets en trop seront renvoyés (même si le nombre max d&#8217;objets n&#8217;a pas été dépassé)
  </p>

  <p>
    Limite des requêtes reçues par la prim<br />&#8211; l&#8217;en-tête ne pourra pas dépasser 255 bytes<br />&#8211; le corps de la requête ne pourra pas dépasser 2k bytes<br />&#8211; un script pourra avoir jusqu&#8217;à 64 requêtes en cours.
  </p>

  <p>
    Limite des réponses renvoyées par la prim<br />&#8211; il n&#8217;y a pas (encore) de limite à la taille du message renvoyé&#8230;
  </p>

  <p>
    Voila vous en savez à présent un petit plus, il ne tient qu&#8217;a vous d&#8217;aller faire vos tests et préparer vos scripts sur le beta grid en attendant que la fonction arrivent dans la grille principale&#8230;
  </p>

  <p>
    Vivement la 1.27 !!!
  </p>

  <p>
    Plus d&#8217;infos :<br />&#8212;&#8212;&#8212;&#8212;&#8211;
  </p>

  <p>
    Le projet :<br /><a href="http://wiki.secondlife.com/wiki/LSL_http_server">http://wiki.secondlife.com/wiki/LSL_http_server</a>
  </p>

  <p>
    Des exemples :<br /><a href="http://wiki.secondlife.com/wiki/LSL_http_server">http://wiki.secondlife.com/wiki/LSL_http_server/examples</a>
  </p>

  <p>
    Le groupe C&S :<br /><a href="http://www.constructeurs-scripteurs.org/">http://www.constructeurs-scripteurs.org/</a>
  </p>

  <p>
    Merci à <a href="http://gallyplanete.wordpress.com/">Gally Young</a> pour son accord de publication sur mon blog ;)</div>