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();
}