UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LwsWebSocketsManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#if WITH_WEBSOCKETS && WITH_LIBWEBSOCKETS
6
8#include "LwsWebSocket.h"
9#include "HAL/Runnable.h"
12#include "Containers/Ticker.h"
13
14#if PLATFORM_WINDOWS
16#endif
17
19#include "libwebsockets.h"
21
22#if PLATFORM_WINDOWS
24#endif
25
26class FRunnableThread;
27
29 : public IWebSocketsManager
30 , public FRunnable
32
33{
34public:
37
38 static FLwsWebSocketsManager& Get();
39
45
50 void WakeService();
51
52 // IWebSocketsManager
53 virtual void InitWebSockets(TArrayView<const FString> Protocols) override;
54 virtual void ShutdownWebSockets() override;
55 virtual TSharedRef<IWebSocket> CreateWebSocket(const FString& Url, const TArray<FString>& Protocols, const TMap<FString, FString>& UpgradeHeaders) override;
56 virtual void UpdateConfigs() override;
57
58private:
59
60 //~ Begin FRunnable Interface
61 virtual bool Init() override;
62 virtual uint32 Run() override;
63 virtual void Stop() override;
64 virtual void Exit() override;
65 //~ End FRunnable Interface
66
67 // FSingleThreadRunnable
72 virtual class FSingleThreadRunnable* GetSingleThreadInterface() override { return this; }
73
74 virtual void Tick() override;
75
76 // FLwsWebSocketsManager
78 bool GameThreadTick(float DeltaTime);
80 static int StaticCallbackWrapper(lws* Connection, lws_callback_reasons Reason, void* UserData, void* Data, size_t Length);
82 int CallbackWrapper(lws* Connection, lws_callback_reasons Reason, void* UserData, void* Data, size_t Length);
83
84#if WITH_SSL
87#endif
92
103
106
109
110 // Thread variables
113
115 FThreadSafeCounter ExitRequest;
116
123#if UE_WEBSOCKETS_PLATFORM_SUPPORT_EVENT_LOOP
124 bool bPollService = false;
125#else
126 bool bPollService = true;
127#endif
128
131
133 double ThreadTargetFrameTimeInSeconds = 1.0f / 30.0f; // 30Hz;
136
137 bool bDisableDomainAllowlist = false;
138 bool bDisableCertValidation = false;
139
140 friend class FLwsWebSocket;
141};
142
143#endif // WITH_WEBSOCKETS && WITH_LIBWEBSOCKETS
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define THIRD_PARTY_INCLUDES_START
Definition GenericPlatformCompilerPreSetup.h:63
struct ssl_ctx_st SSL_CTX
Definition ISslCertificateManager.h:11
void Init()
Definition LockFreeList.h:4
#define MAX_int32
Definition NumericLimits.h:25
@ Stop
Definition PrecomputedVolumetricLightmapStreaming.cpp:26
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition IDelegateInstance.h:14
Definition RunnableThread.h:20
Definition Runnable.h:20
Definition SingleThreadRunnable.h:12
Definition ThreadSafeCounter.h:14
Definition IWebSocketsManager.h:11
Definition Sockets.Build.cs:6
Definition ArrayView.h:139
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition Queue.h:48
Definition SharedPointer.h:153
FORCEINLINE T * Get(const FObjectPtr &ObjectPtr)
Definition ObjectPtr.h:426
Definition Voronoi.cpp:10
void Run(FMassRuntimePipeline &RuntimePipeline, FProcessingContext &ProcessingContext)
Definition MassExecutor.cpp:25