Integrate a Managed Dedicated Server to the DSM
Last updated on
Make sure when you call this function, you are already on the server side functionality not client side.
Register your Managed Dedicated Server to the DSM.
- Unreal Engine
- Unity
int32 Port = 7777;
FRegistry::ServerDSM.RegisterServerToDSM(Port, FVoidHandler::CreateLambda([]()
{
// Do something if RegisterServerToDSM has been successful
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if RegisterServerToDSM has an error
UE_LOG(LogTemp, Log, TEXT("Error RegisterServerToDSM, Error Code: %d Error Message: %s"), ErrorCode, *ErrorMessage);
}));int portNumber = 7777;
AccelByteServerPlugin.GetDedicatedServerManager().RegisterServer(portNumber, result =>
{
if (result.IsError)
{
// Do something if RegisterServer has an error
Debug.Log($"Error RegisterServer, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
}
else
{
// Do something if RegisterSErver has been successful
}
});Wait until the DS gets a session. The DS should wait for a player to try to connect to the DS.
This function can be used to let the DS retrieve the session ID. If the session ID is empty, this indicates that the DS doesn’t have a session yet.
- Unreal Engine
- Unity
FRegistry::ServerDSM.GetSessionId(THandler<FAccelByteModelsServerSessionResponse>::CreateLambda([](const FAccelByteModelsServerSessionResponse& Result)
{
// Do something if GetSessionId has been successful
FString Sessionid = Result.Session_id;
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetSessionId has an error
UE_LOG(LogTemp, Log, TEXT("Error GetSessionId, Error Code: %d ErrorMessage: %s"), ErrorCode, *ErrorMessage);
}));AccelByteServerPlugin.GetDedicatedServerManager().GetSessionId(result =>
{
if (result.IsError)
{
// Do something if GetSessionId has an error
Debug.Log($"Error GetSessionId, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
}
else
{
// Do something if GetSessionId has been successful
string sessionId = result.Value.session_id;
}
});Your managed dedicated server can be shut down automatically using this function.
- Unreal Engine
- Unity
bool KillMe = true;
FString MatchId = FString("SomeMatchId");
FRegistry::ServerDSM.SendShutdownToDSM(KillMe, MatchId, FVoidHandler::CreateLambda([]()
{
// Do something if SendShutdownToDSM has been successful
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if SendShutdownToDSM has an error
UE_LOG(LogTemp, Log, TEXT("Error SendShutdownToDSM has an error, Error Code: %d Error Message: %s"), ErrorCode, *ErrorMessage);
}));bool killMe = true;
AccelByteServerPlugin.GetDedicatedServerManager().ShutdownServer(killMe, result =>
{
if (result.IsError)
{
// Do something if ShutdownServer has an error
Debug.Log($"Error ShutdownServer, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
}
else
{
// Do something if ShutdownServer has been successful
}
});