UE5 Http Server

前言

最近要用UE 作为一个服务器去接收来自外部的请求,从而在UE中处理一些内容,但是之前只做过请求,哪整过这玩意,短期内还得出结果,那怎么搞嘞,本着省事的原则就找找呗,有没有现成的,发现还真有,有的收费有的不收费,那肯定不能找收费的啊,然后就找了一个功能也整完了,发现只能127.0.0.1才能获取到,于是又搞了一下终于是把整个过程都跑下来,接下来,把它分享给你们,希望能帮助到你们。

过程

  1. 我这里的UE版本是UE 5.3如果你们是其他版本自己看着代码整一下吧,我这里在github上看的一个老哥,基本上只保留了实际要用的功能很简洁,能满足基础使用需求了。

UE5.3 Http Server插件地址https://github.com/Kaboms/UE-Simple-Http-Server 2. 不会用的UE插件的,下载以后,放置到工程中的Plugins文件夹中,直接运行,想编译的在UE5C++工程中点击Generate VisualStudio进行编译使用,打开工程后有一个示例关卡和蓝图,关卡蓝图里面是启动的Server和绑定委托做的处理事件。

  1. 在你运行以后根据它关卡提示,能通过网址做一个简单的交互,UE交互逻辑在关卡蓝图中处理的,实际的服务在BP_HttpServerShowcase蓝图中实现的,它继承与SimpleHttpServer,新建的话直接创建即可,EventBindRoutes为主触发事件,BindRoute是单块的HttpServer,如果你需要新建一个那就新建一个BindRoute。

  2. HttpPath为我们实际的虚拟服务地址,Verbs是客户端访问API的方式,从OnHttpServerSequest拖拽一个节点,搜索CreateEvent,这是处理Server接收到请求以后得处理过程,然后下拉选择Create a matching function创建一个新的函数来处理接收过程。

  1. 在这个事件中Input是在C++中做的绑定处理,我们直接展开这个变量,Body和Params是根据不同请求方式做接收的,这个请求体规则你自己定就行。

  2. MakeResponses是你返回的过程包括类型,这块如果用不到网页的话就根据实际的使用需求改一下状态码就行,涉及到网页啥的你就参考下GitHub作者示例请求就行,另外如果你不想在这处理你得主逻辑,那你就创建一个EventDispatchers用来做数据委托,这样主线程启动以后可以通过绑定的方式处理了,右上角是你自己创建需要做代理的数据类型。

  3. 关卡蓝图中做了调用,绑定可以搜到的也是你创建的EventDispatchers做的数据接收和处理,然后直接运行通过网址或者网络调试工具就可以进行测试了。

结尾

功能实现了,发现无法通过局域网的方式进行调用,这是因为UE HttpServer源码的Config文件默认走的是localhost,如果不设置的话它永远的地址都只能是127.0.0.1,这里我们打开工程Saved->Config->WindowsEditor路径下找到Engine.ini或者DefaultEngine.ini文件通过文本打开在最下面添加如下内容,将其设置为0.0.0.0,这样我们整个IPV4的局域网地址就可以被我们的服务器识别推送了。到这里一个基础的链路就处理完了,如果想做Http的接口请求,UE官方的Varest插件也是可以帮到你的。

[HTTPServer.Listeners]
DefaultBindAddress=0.0.0.0
相关推荐
DBBH6 小时前
UE5 第三人称学习之动画 control rig
ue5
UTwelve6 小时前
【UE5】一种老派的假反射做法,可以用于移动端,或对反射的速度、清晰度有需求的地方
ue5·虚幻引擎·着色器·虚幻4
UTwelve9 小时前
【UE5】可以实时绘制的体积渲染 【第三章 体积纹理绘制 - 3.绘制体积】
ue5
1204157137 肖哥14 小时前
UE5.4 PCG基础节点
ue5
DBBH2 天前
UE5 材质篇 1 如何偏移顶点
ue5·材质
孤客网络科技工作室2 天前
虚幻引擎5(UE5)学习教程
java·学习·ue5
暮志未晚Webgl2 天前
105. UE5 GAS RPG 搭建主菜单
ue5
异次元的归来2 天前
UE5相机系统初探(一)
ue5·游戏引擎·camera
DBBH4 天前
UE5 材质篇 0 创建一个材质
ue5
暮志未晚Webgl8 天前
102. UE5 GAS RPG 实现范围技能奥术伤害
android·java·ue5