Files
UnrealEngine/Engine/Source/Runtime/Online/WebSockets/Private/WinHttp/WinHttpWebSocketsManager.h
2025-05-18 13:04:45 +08:00

40 lines
1.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#if WITH_WEBSOCKETS && WITH_WINHTTPWEBSOCKETS
#include "CoreMinimal.h"
#include "IWebSocketsManager.h"
#include "Containers/Ticker.h"
class FWinHttpHttpManager;
class FWinHttpWebSocket;
class FWinHttpWebSocketsManager
: public IWebSocketsManager
{
public:
virtual ~FWinHttpWebSocketsManager() = default;
//~ Begin IWebSocketsManager Interface
virtual void InitWebSockets(TArrayView<const FString> Protocols) override;
virtual void ShutdownWebSockets() override;
virtual TSharedRef<IWebSocket> CreateWebSocket(const FString& Url, const TArray<FString>& Protocols, const TMap<FString, FString>& UpgradeHeaders) override;
//~ End IWebSocketsManager Interface
protected:
bool GameThreadTick(float DeltaTime);
void InitHttpManager();
protected:
FTSTicker::FDelegateHandle TickHandle;
FWinHttpHttpManager* WinHttpHttpManager = nullptr;
TArray<TWeakPtr<FWinHttpWebSocket>> ActiveWebSockets;
};
#endif // WITH_WEBSOCKETS && WITH_WINHTTPWEBSOCKETS