// Fill out your copyright notice in the Description page of Project Settings. #include "GameModes/LuckyRobotsGameState.h" #include "SocketIOClientComponent.h" #include "FunctionLibraries/LuckyRobotsFunctionLibrary.h" #include "Core/LuckyRobotsGameInstance.h" ALuckyRobotsGameState::ALuckyRobotsGameState() { SocketIOClientComponent = CreateDefaultSubobject(TEXT("SocketIOClientComponent")); } void ALuckyRobotsGameState::BeginPlay() { Super::BeginPlay(); if (SocketIOClientComponent) { SocketIOClientComponent->Connect(L"http://localhost:3000/"); } } void ALuckyRobotsGameState::DoSendMessage(FString SendValue) { if (SocketIOClientComponent && SocketIOClientComponent->bIsConnected) { USIOJsonValue* SIOJsonValue = USIOJsonValue::ConstructJsonValueString(this, SendValue); SocketIOClientComponent->Emit(TEXT("message"), SIOJsonValue); } } void ALuckyRobotsGameState::DoSocketOnConnect(FString SocketId, FString SessionId, bool IsReconnection) { if (SocketIOClientComponent && SocketIOClientComponent->bIsConnected) { SocketIOClientComponent->BindEventToGenericEvent(TEXT("response")); } } void ALuckyRobotsGameState::DoSocketOnGenericEvent(FString EventName, USIOJsonValue* EventData) { if (ULuckyRobotsGameInstance* GameInstance = ULuckyRobotsFunctionLibrary::GetLuckyRobotsGameInstance(this)) { GameInstance->DoGetDispatch(EventName, EventData); } }