Serveur SSL WebSocket, serveur HTTP pour tester les builds HTML5

Écrit par Fabio Alessandrelli - Traduit par Xavier 'Binogure' -

Salutations Godotteurs et Godotteuses, cet article vient dans la continuïté de mon travail sur le chiffrement dans Godot. Travail sponsorisé par Mozilla. Dernièrement j’ai travaillé sur une meilleure documentation de la classe Crypto, ainsi que sur l’amélioration du support des WebSocket et l’intégration d’un serveur HTTP à l’éditeur afin de pouvoir tester l’export HTML5 plus simplement.

Le SSL pour le webSocketServer

Gràce aux dernières améliorations apportées au module WebSocket, le support du chiffrement SSL a été ajouté à la classe WebSocketServer.

En définissant la private_key et le ssl_certificate vous activerez automatiquement le chiffrement SSL.

Voic un exemple de code GDScript qui crée un serveur WebSocket avec un certificat self-signed:

extends Node

const PORT = 9080
var _server = WebSocketServer.new()

# (Test client)
var _client = WebSocketClient.new()

func _ready():
    # Crée et et définit la clé et le certificat self-signed.
    var crypto = Crypto.new()
    var key = crypto.generate_rsa(4096)
    var cert = crypto.generate_self_signed_certificate(key, "CN=localhost,O=myorganisation,C=IT")
    _server.private_key = key
    _server.ssl_certificate = cert

    # Démarre le serveur.
    _server.connect("client_connected", self, "_connected")
    _server.listen(PORT)

    # (Teste Client) Définit le certificat comme sûr pour la connexion.
    _client.trusted_ssl_certificate = cert
    _client.connect_to_url("wss://localhost:%d" % PORT)

func _process(delta):
    _server.poll()
    _client.poll()

func _connected(id, protocol):
    print("Client connecté!")

La documentation de la classe Crypto contient davantage d’informations concernants les clés RSA et la génération de certificats

Tester l’export HTML5

Il y a de superbes fonctionnalités dans Godot, notamment celle qui permet aux utilisateurs d’exporter leur projet en mode debug pour certaines plateformes. Dès que vous avez définit vos modèles d’exportation, une simple pression sur un bouton suffit pour tester son projet directement sur l’appareil connecté.

HTML5 projet exportation

Le navigateur web par défaut s’ouvrira dès que vous exporterez votre projet en HTML5. Cependant, les navigateurs modernes empêchent les requêtes asynchrones vers les url de type file://. C’est pourquoi nous avons ajouté un serveur HTTP très basique qui n’est là que pour servir les fichiers nécessaires à l’export HTML5.

Il s’agit d’un pas supplémentaire pour permettre aux utilisateurs de profiler les jeux exporter en HTML5 via une connexion en WebSocket. Restez connecté pour en savoir davantage!

HTML5 projet test

Travail effectué

Ameliorations diverses du support des WebSocket, serveurs SSL et l’ajout d’entêtes personnalisés Implementation du serveur HTTP basique lors d’un export HTML5 Ajout de la documentation des classes liés au chiffrement