Aller au contenu principal

Unreal WebSockets

Les connexions WebSocket sont adaptées pour une communication en continu et à double sens.

Pour communiquer par Websocket, UE4 propose le module WebSocketsModule. Une fois chargé, il permet de créer une connexion à un serveur via WebSocket, d'y envoyer des messages et de gérer les événements sur celles-ci (connexion, erreur, fermeture, ouverture, message reçu, message envoyé).

Limitation

Il ne permet pas d'écouter sur un port (listen), et ne peut donc pas faire du Serveur Unreal un Serveur WebSocket.

HOWTO

C'est un module simple à prendre en main :

  1. Ajoutez le module aux dépendances de votre projet/plugin en modifiant son fichier *.Build.cs.
PublicDependencyModuleNames.AddRange(
new string[]
{
"Core",
"WebSockets"
}
  1. Assurez vous que le module est bien chargé avant toute utilisation dans vos classes.
if (!FModuleManager::Get().IsModuleLoaded("WebSockets")) {
FModuleManager::Get().LoadModule("WebSockets");
}
  1. Créez une connexion WebSocket. Dans cet exemple, un serveur attend notre connexion sur le port local 8080.
FWebSocketsModule::Get().CreateWebSocket(ws://localhost:8080)`
  1. Avant de démarrer la connexion. Implémentez les listeners qui gèrereont ses événéments. Ici on écrit un log quand on parvient à se connecter.
WebSocket->OnConnected().AddLambda([]()
{
UE_LOG(LogTemp, Display, TEXT("Connexion reussie."));
}
);
  1. Enfin, lancez la connexion en WebSocket.
WebSocket->Connect();
  1. Si la connexion réussi, vous pouvez envoyer des messages simplement.
FString msg = "Hello world!";
WebSocket->Send(msg);
  1. N'oubliez pas de vous déconnecter en fin d'utilisation.
if (WebSocket->IsConnected()) {
WebSocket->Close();
}