All Projects → PushkinStudio → PsWebServer

PushkinStudio / PsWebServer

Licence: MIT License
Civet web server integration plugin for Unreal Engine 4

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
C#
18002 projects

Projects that are alternatives of or similar to PsWebServer

tsu
TypeScript plugin for Unreal Engine 4
Stars: ✭ 62 (+158.33%)
Mutual labels:  unreal-engine, ue4, unreal-engine-4, ue4-plugin
ProceduralDungeon
This is an Unreal Engine 4/5 plugin to generate procedural dungeon.
Stars: ✭ 95 (+295.83%)
Mutual labels:  unreal-engine, ue4, unreal-engine-4, ue4-plugin
Psrealvehicle
Plugin for Unreal Engine 4 with simple force-driven vehicle simulation
Stars: ✭ 92 (+283.33%)
Mutual labels:  unreal-engine, ue4, mit-license, unreal-engine-4
PsData
Flexible data model plugin for Unreal Engine 4
Stars: ✭ 34 (+41.67%)
Mutual labels:  unreal-engine, ue4, unreal-engine-4, ue4-plugin
ue5-style-guide
An attempt to make Unreal Engine 4 projects more consistent
Stars: ✭ 2,892 (+11950%)
Mutual labels:  unreal-engine, ue4, unreal-engine-4
DlgSystem
Dialogue Plugin System for Unreal Engine | 🪞 Mirror of https://bit.ly/DlgSource
Stars: ✭ 136 (+466.67%)
Mutual labels:  ue4, unreal-engine-4, ue4-plugin
UE4-Plugin-Resources
A list of community resources for Slate, Graphs, and UE4 Plugin Development.
Stars: ✭ 105 (+337.5%)
Mutual labels:  ue4, unreal-engine-4, ue4-plugin
DualSenseWindows UE4
Unreal Engine 4 port of the Windows API for the PS5 DualSense controller created at Ohjurot/DualSense-Windows
Stars: ✭ 25 (+4.17%)
Mutual labels:  unreal-engine, ue4, ue4-plugin
modio-ue4-legacy
Unreal Engine 4 Plugin for integrating mod.io - a modding API for game developers
Stars: ✭ 83 (+245.83%)
Mutual labels:  ue4, unreal-engine-4, ue4-plugin
MaRLEnE
Machine- and Reinforcement Learning ExtensioN for (game) Engines
Stars: ✭ 47 (+95.83%)
Mutual labels:  ue4, unreal-engine-4, ue4-plugin
gamedevguide
Game Development & Unreal Engine Programming Guide
Stars: ✭ 314 (+1208.33%)
Mutual labels:  unreal-engine, ue4, unreal-engine-4
Kosm-Classic-FPS-Template-UE4
Classic Arena First-Person-Shooter Mechanics for Unreal Engine 4.
Stars: ✭ 38 (+58.33%)
Mutual labels:  unreal-engine, ue4, unreal-engine-4
LocalizationUE4
Translation Editor for Unreal Engine 4
Stars: ✭ 59 (+145.83%)
Mutual labels:  unreal-engine, ue4, unreal-engine-4
PrFirebase
Firebase SDK integration for Unreal Engine 4
Stars: ✭ 25 (+4.17%)
Mutual labels:  unreal-engine, ue4, ue4-plugin
AnimationPreviewer
Plug-in for previewing Animation Asset
Stars: ✭ 39 (+62.5%)
Mutual labels:  ue4, unreal-engine-4, ue4-plugin
UT Framework
Various advanced tools built for Unreal Engine 4
Stars: ✭ 45 (+87.5%)
Mutual labels:  unreal-engine, ue4, unreal-engine-4
RuntimeBPs
This project allows for visual scripting in UE4 similar to Blueprints, but at runtime. The way this is set up does not make use of any UE4 boilerplate and could with a few adjustments be used in another engine.
Stars: ✭ 77 (+220.83%)
Mutual labels:  unreal-engine, ue4, unreal-engine-4
UT GameEventSystem
A flexible event system in Unreal Engine 4
Stars: ✭ 33 (+37.5%)
Mutual labels:  unreal-engine, ue4, unreal-engine-4
Unreal-Binary-Builder
An application designed to create installed Unreal Engine builds (aka Rocket builds) from Unreal Engine GitHub source.
Stars: ✭ 554 (+2208.33%)
Mutual labels:  unreal-engine, ue4, unreal-engine-4
DataConfig
Unreal Engine JSON/MsgPack serialization framework
Stars: ✭ 81 (+237.5%)
Mutual labels:  unreal-engine, ue4, unreal-engine-4

PsWebServer

Civet web server integration plugin for Unreal Engine 4

HowTo

Web server usage (f.e. in AMyGameMode::BeginPlay()))

// Launch web server
WebServer = NewObject<UPsWebServerWrapper>(this);
WebServer->StartServer();

// Create and register api handler
auto PingHandler = NewObject<UMyServerPingHandler>(this);
PingHandler->SetHeader(TEXT("Server"), TEXT("MyServer/") + MyGI->GetGameVersion());     // Optional header set
WebServer->AddHandler(PingHandler, TEXT("/api/ping"));

If uses UMyServerPingHandler class that defined as:

#pragma once

#include "PsWebServerHandler.h"

#include "MyServerPingHandler.generated.h"

UCLASS()
class UMyServerPingHandler : public UPsWebServerHandler
{
	GENERATED_BODY()

public:
	/** Override to implement your custom logic of request processing */
	virtual void ProcessRequest_Implementation(const FGuid& RequestUniqueId, const FString& RequestData) override;
};

And its definition:

#include "MyServerPingHandler.h"

#include "PsWebServerDefines.h"
#include "VaRestJsonObject.h"

/*
 * Check that request has valid json encoded body and return its copy in response
 */
void UMyServerPingHandler::ProcessRequest_Implementation(const FGuid& RequestUniqueId, const FString& RequestData)
{
	// Validate json format with VaRest
	UVaRestJsonObject* JsonTemp = UVaRestJsonObject::ConstructJsonObject(this);
	if (JsonTemp->DecodeJson(RequestData))
	{
		ProcessRequestFinish(RequestUniqueId, FString::Printf(TEXT("{\"request_data\":%s}"), *RequestData));
		return;
	}

	UE_LOG(LogMyGame, Error, TEXT("%s: can't validate data as json one: %s"), *PS_FUNC_LINE, *RequestData);

	const FString ErrorStr = TEXT(R"({"error":"1000","message":"Request data is not a valid json object"})");
	ProcessRequestFinish(RequestUniqueId, ErrorStr);
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].