API: Sandbox-Modell

Die Roll20-API funktioniert, indem sie für jede Kampagne eine spezielle serverseitige virtuelle Maschine ausführt. Dies stellt eineSandboxbereit, in der Ihre benutzerdefinierten Skripte ausgeführt werden können, ohne dass die Gefahr besteht, dass sie die Kampagnen anderer Benutzer beeinträchtigen. Darüber hinaus bietet dies eine Sicherheitsebene, die einen böswilligen GM daran hindert, Skripte zu schreiben, die schlimme Dinge bewirken könnten, wie zum Beispiel auf den Computer eines Spielers zuzugreifen oder dessen Computer in einer Endlosschleife zum Stillstand zu bringen.


Wie es funktioniert

Wenn Sie neugierig auf die technischen Details der Funktionsweise der API sind, finden Sie hier ein kurzes Diagramm:

Vom Benutzer geschriebene Skripte ===> API-Server ===> Kampagnen-Sandbox <===> Echtzeit-Synchronisierungsserver

Der Roll20-API-Server überwacht die Aktivität Ihrer Kampagne. Wenn es feststellt, dass Menschen deiner Kampagne verwenden, richtet es einen Sandkasten für deine Kampagne ein und lädt alle Mod (API)-Skripte, die du in den Sandkasten geschrieben hast, Die Sandbox kann Daten direkt an den Echtzeit-Synchronisierungsserver empfangen und senden, wodurch sie auf Ereignisse reagieren und Änderungen am Spiel vornehmen kann.


Einschränkungen durch normales Javascript

Obwohl es sich bei Roll20-Skripten um Javascript handelt, gibt es einige Einschränkungen, die Sie beachten sollten, wenn Sie mit der Programmierung von Javascript für Websites vertraut sind. Roll20-Skripte werden in einer separaten Sandbox von der Roll20-Site ausgeführt. Dies bietet eine zusätzliche Trennungs- und Sicherheitsebene für unser System und Ihre Spieler. Diese Sandbox bedeutet Folgendes:

  • Sie können keine HTTP-Anfragen (AJAX) stellen.
  • Sie können keine externen Skripte oder Bibliotheken (z. B. jQuery) laden.
  • Die Umgebung ist Javascript, aber es handelt sich nicht um eine Umgebung in einem Browser, daher gibt es kein DOM, keine Seitenelemente, CSS,document,windowusw.
 
War dieser Beitrag hilfreich?
34 von 47 fanden dies hilfreich