I can’t figure out what’s wrong.
As shown in the picture, the module is null.
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HTTP", "Json", "JsonUtilities" , "WebSockets", "OnlineSubsystem" });
I also added dependencies
#include "WebSocket.h"
#include "Modules/ModuleManager.h"
void UWebSocket::ConnectToWebSocket(const FString& ServerURL)
{
FWebSocketsModule* WebSocketModule = &FModuleManager::LoadModuleChecked<FWebSocketsModule>(TEXT("WebSockets"));
if ( WebSocketModule ) {
if ( !FModuleManager::Get().IsModuleLoaded("WebSocket") )
{
FModuleManager::Get().LoadModule("WebSocket");
}
WebSocket = WebSocketModule->CreateWebSocket(ServerURL);
}
if ( !WebSocket.IsValid() )
{
UE_LOG(LogTemp , Error , TEXT("Failed to create WebSocket!"));
return;
}
WebSocket->OnConnected().AddLambda([]() {
UE_LOG(LogTemp , Log , TEXT("WebSocket connected!"));
});
WebSocket->OnMessage().AddLambda([](const FString& Message) {
UE_LOG(LogTemp , Log , TEXT("Send Msg: %s") , *Message);
});
WebSocket->OnClosed().AddLambda([](int32 StatusCode , const FString& Reason , bool bWasClean) {
UE_LOG(LogTemp , Log , TEXT("WebSocket closed: %s") , *Reason);
});
WebSocket->Connect();
}```
This is my test code.