@@ -393,6 +393,52 @@ void ASample_PubSub::OnMessageReceived_SubscribeWithPresenceSample(FPubnubMessag
393
393
}
394
394
}
395
395
396
+ // snippet.subscribe_with_result
397
+ // ACTION REQUIRED: Replace ASample_PubSub with name of your Actor class
398
+ void ASample_PubSub::SubscribeWithResultSample ()
399
+ {
400
+ // Get PubnubSubsystem from GameInstance
401
+ UGameInstance* GameInstance = UGameplayStatics::GetGameInstance (this );
402
+ UPubnubSubsystem* PubnubSubsystem = GameInstance->GetSubsystem <UPubnubSubsystem>();
403
+
404
+ // Set UserID
405
+ FString UserID = TEXT (" Player_001" );
406
+ PubnubSubsystem->SetUserID (UserID);
407
+
408
+ // Add Listener/Delegate that will broadcast whenever message is received on any subscribed channel or group
409
+ // ACTION REQUIRED: Replace ASample_PubSub with name of your Actor class
410
+ PubnubSubsystem->OnMessageReceived .AddDynamic (this , &ASample_PubSub::OnMessageReceived_SubscribeSample);
411
+
412
+ // Add Listener/Delegate that will be called when subscribe operation is established with it's result
413
+ // Note:: this is not listener for messages incoming to the subscribed channel
414
+ // ACTION REQUIRED: Replace ASample_PubSub with name of your Actor class
415
+ FOnSubscribeOperationResponse OnSubscribeOperationResponse;
416
+ OnSubscribeOperationResponse.BindDynamic (this , &ASample_PubSub::OnSubscribeResultReceived);
417
+
418
+ // Subscribe to the Channel
419
+ FString Channel = TEXT (" guild_chat" );
420
+ PubnubSubsystem->SubscribeToChannel (Channel, OnSubscribeOperationResponse);
421
+ }
422
+
423
+ // ACTION REQUIRED: Replace ASample_PubSub with name of your Actor class
424
+ void ASample_PubSub::OnMessageReceived_SubscribeWithResultSample (FPubnubMessageData Message)
425
+ {
426
+ UE_LOG (LogTemp, Log, TEXT (" Message received on Channel: %s, Message Content: %s" ), *Message.Channel , *Message.Message );
427
+ }
428
+
429
+ // ACTION REQUIRED: Replace ASample_PubSub with name of your Actor class
430
+ void ASample_PubSub::OnSubscribeResultReceived (FPubnubOperationResult Result)
431
+ {
432
+ if (Result.Error )
433
+ {
434
+ UE_LOG (LogTemp, Error, TEXT (" Failed to subscribe to channel. Status: %d, Reason: %s" ), Result.Status , *Result.ErrorMessage );
435
+ }
436
+ else
437
+ {
438
+ UE_LOG (LogTemp, Log, TEXT (" Subscribed to channel successfully." ));
439
+ }
440
+ }
441
+
396
442
// snippet.unsubscribe_from_channel
397
443
// ACTION REQUIRED: Replace ASample_PubSub with name of your Actor class
398
444
void ASample_PubSub::UnsubscribeFromChannelSample ()
0 commit comments