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
相关推荐
AA陈超13 小时前
虚幻引擎5 GAS开发俯视角RPG游戏 P07-11 实现自动运行
c++·游戏·ue5·游戏引擎·虚幻
ue星空2 天前
UE核心架构概念
网络·c++·ue5
ue星空2 天前
AActor前面为什么要加A? UObject前面为什么要加U?
ue5
AA陈超4 天前
虚幻引擎5 GAS开发俯视角RPG游戏 P07-08 点击移动
c++·游戏·ue5·游戏引擎·虚幻
曼巴UE54 天前
UE5 C++ Slate 画曲线
开发语言·c++·ue5
ue星空4 天前
UE5C++UKismetMathLibrary源代码
c++·ue5
CandyU24 天前
UE5 C++ 进阶学习 小知识点 —— 01 - 本地化语言
学习·ue5
我救我自己5 天前
UE5.6 玻璃材质——Lumen
ue5·材质
AA陈超7 天前
虚幻引擎5 GAS开发俯视角RPG游戏 P07-06 能力输入的回调
c++·游戏·ue5·游戏引擎·虚幻
AA陈超9 天前
虚幻引擎5 GAS开发俯视角RPG游戏 P06-29 属性信息委托
c++·游戏·ue5·游戏引擎·虚幻