UE接受WebSocket消息-像素流

UE接受WebSocket消息-像素流

以像素流举例.
UE5.0.3
新建C++项目
我们项目需求就是与前端通讯 前端发送Json对象给UE UE解析并且根据发送过来的数据进行操作

一、启动像素流插件(Pixel Streaming)

像素流插件 重启引擎

二、在C++中设置代理和添加组件

在XXXX.Build.cs(XXX是项目名字)中添加PixelStreaming模块

PublicDependencyModuleNames.AddRange(new string[] { "PixelStreaming" }); 

新建一个PlayerController
我这里命名为AMain_PlayerController

添加组件

#include "PixelStreamingDelegates.h"
#include "PixelStreamingInputComponent.h"
//信令服务器链接状态
UPROPERTY()
UPixelStreamingDelegates* ReturnValue;
//接受消息
UPROPERTY()
UPixelStreamingInput* PixelStreamingInputComponent;

构建函数AMain_PlayerController();
初始化成员

AMain_PlayerController::AMain_PlayerController(): ReturnValue(nullptr)
{
	ReturnValue=UPixelStreamingDelegates::GetPixelStreamingDelegates();
	PixelStreamingInputComponent=CreateDefaultSubobject<UPixelStreamingInput>(TEXT("PixelStreamingInput"));
}

添加链接用户的ID

//查看连接进来的玩家ID
void NewConnectionNative(FString PlayerId,bool WasQualityController) const;
//打印连接玩家的ID
void AMain_PlayerController::NewConnectionNative(FString PlayerId, bool WasQualityController) const
{
	UE_LOG(LogTemp, Warning, TEXT("ID为:%s"),*PlayerId);
}

新建函数JSONParse
(这个函数是用来接收消息的,不一定是非要JSONParse可以根据自身需求创建)
*注一定要带一个FString因为消息只能接受字符串,发送也是字符串

void JSONParse(const FString& InMessage);

BinginPlay中设置代理

void AMain_PlayerController::BeginPlay()
{
	Super::BeginPlay();
	//设置接受到消息后代理
	PixelStreamingInputComponent->OnInputEvent.AddDynamic(this,&AMain_PlayerController::JSONParse);
	//设置信令服务器代理
	ReturnValue->OnConnectedToSignallingServerNative.Broadcast();
	ReturnValue->OnNewConnectionNative.AddUObject(this, &AMain_PlayerController::NewConnectionNative);
}

这样你的void AMain_PlayerController::JSONParse(const FString& InMessage){}中的InMessage就是你的WebSocket向UE发送的消息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值