UE5 Http Server

前言

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

过程

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

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

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

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

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

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

       7. 关卡蓝图中做了调用,绑定可以搜到的也是你创建的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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/19536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络- 特定服务类型(Type of Service, TOS) 服务质量(Quality of Service, QoS)

特定服务类型(Type of Service, TOS) 具有特定服务类型(Type of Service, TOS)的数据包是指在IP头部中包含特定TOS字段设置的数据包。TOS字段用于指示数据包的服务质量要求,如延迟、吞吐量、可靠性等。现代IP网络通常…

结构体中内存的对齐

前言 学C的同学应该知道~ 想精通C语言就不得不面对—指针与内存 续上次指针进阶&#xff0c;这一章我来聊一聊C语言内存对齐的问题 学习结构体的你有没有注意过结构体向系统申请的内存为多少呢的&#x1f601; 思考 #include<stdio.h> typedef struct s1 {char a;char …

Qt6同时使用Qt3DCore与QtGUI时QTransform类冲突问题

在Qt GUI模块有一个QTransform类&#xff0c;在Qt3D Core模块也有一个QTransform类&#xff0c;如果不特殊指定一下会报错

全新/二手KEITHLEY 2400 数字万用表

吉时利Keithley 2400数字源表&#xff0c;200V&#xff0c;1A&#xff0c;20W Keithley 2400 源表是一款 20W 仪器&#xff0c;可输出和测量 5V&#xff08;输出&#xff09;和 1V&#xff08;测量&#xff09;至 200V DC 的电压以及 10pA 至 1A 的电流。该万用表功能包括高重复…

【linux深入剖析】进程间通信

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 1.进程间通信目的2. 什么…

layui实现鼠标移入/移出时显示/隐藏tips

layui实现鼠标移入/移出时显示/隐藏tips弹窗 注&#xff1a;其它弹窗亦可按照此方法实现相同效果 鼠标移入 dom 或 tips 区域&#xff0c;显示 tips 弹窗&#xff1b; 鼠标移出 dom 或 tips 区域&#xff0c;隐藏 tips 窗口&#xff1b; <div id"box">鼠标移入…

如何发布自己的 npm 包

创建 npm 包项目 创建项目目录&#xff1a; 在本地创建一个新的项目目录&#xff0c;并进入该目录。 初始化项目&#xff1a; 在命令行中运行以下命令初始化 npm 项目&#xff1a; npm init 按照提示填写项目信息&#xff0c;包括包名、版本、描述等。 编写代码 在项目目录…

react 怎样向ant table添加按钮,以及文本溢出隐藏?

这些都是一些组件自带的方法&#xff0c;只不过是不知道该怎么用&#xff0c;上面的内容可以直接拿去用&#xff0c;&#xff08;事件除外&#xff0c;要自己绑&#xff0c;还有引入的组件&#xff09;&#xff01;

Go常见的语法题目

1、下面代码能运行吗&#xff1f;为什么。 type Param map[string]interface{}type Show struct {Param }func main1() {s : new(Show)s.Param["RMB"] 10000 }解析 共发现两个问题&#xff1a; main 函数不能加数字。new 关键字无法初始化 Show 结构体中的 Param…

数据结构:栈和队列的练习题1(括号匹配问题)

题目描述&#xff1a; 思路&#xff1a;我们首先可以把出现的情况大致分为以下几类&#xff1a; 因为涉及匹配问题&#xff0c;所以所有的左括号和右括号肯定要分开来整理。如果我们直接去匹配的话&#xff08;像第一行的从左到右独立匹配&#xff09;是行得通的&#xff0c;但…

C/C++|我们为什么应该使用 `std::make_shared` 创建 `std::shared_ptr`

std::make_shared 是 C11 引入的一个工厂函数&#xff0c;用于创建 std::shared_ptr。与直接使用 new 并将其传递给 std::shared_ptr 构造函数相比&#xff0c;std::make_shared 提供了一种更高效、更安全的方法来分配和管理动态内存。 前置知识1&#xff1a; 当我们调用诸如&a…

关于d3js生成节点画布的个人笔记

实现功能 根据鼠标位置生成节点根据节点位置通过鼠标拖拽生成连线实现自定义线段颜色功能删除节点以及连线功能实现单个节点拖动功能实现整条线路的拖动功能 界面如下&#xff1a; 主要模块介绍 绘制连线 const line svg.selectAll(".line").data(links, d >…

【Linux】Git超详细教程:手把手教你(gitee版)--版本管理+远程仓库克隆(初学者必看!!!)

目录 一、前言 二、git 的深度理解 &#x1f95d; 什么是 git ? &#x1f347; git 的历史发展&#xff08;理解 git 的由来&#xff09; &#x1f34b; 感性理解 git 的版本管理 三、git 的安装 ✨Window 终端安装 ✨Linux 安装 四、git 的工作流程 五、如何在 Linux …

音视频开发—视频相关概念:YUV与RGB

文章目录 YUV相关概念组成部分优点常见的 YUV 格式数据量的计算YUV4:2:0 存储格式平面模式&#xff08;planar):打包模式&#xff08;packed&#xff09; RGB 和 YUV 的定义关系与转换RGB 到 YUV 的转换YUV 到 RGB 的转换 使用场景优缺点 YUV相关概念 YUV 是一种颜色编码格式&…

JVM-JAVA-类加载过程

JVM源码 类加载到 JVM 的过程通过 java 命令执行代码的流程 类加载到 JVM 的过程 在运行一个 main 函数启动程序是&#xff0c;首先需要类加载起把主类加载到 JVM 中 通过 java 命令执行代码的流程 loadClass的类加载过程有如下几步&#xff1a; 类被加载到方法区中后主要包…

Maven项目通过maven central 发布到中央仓库 https://repo.maven.apache.org/ 手把手教学 最新教学

一、注册maven central账号 ​ https://central.sonatype.com/publishing/namespaces 我这里直接使用github账号登录 &#xff0c;可以自己注册或者直接使用google账号或者github账号登录 这里github账号登录之后 应该只出现io.github 下面的io.gitee我也验证过 所以这里出…

Java时间类--JDK8

为什么JDK8会又新增时间相关类呢&#xff1f; ① JDK7的时间对象如果需要比较大小的话&#xff0c;必须都先转换成毫秒值&#xff1b;JDK8则不需要&#xff0c;可以直接比较。 ② JDK7的时间对象可以修改&#xff0c;在多线程环境下就会导致数据不安全&#xff1b;JDK8不能修改…

数据库open报ORA-600 kcratr_scan_lastbwr故障处理---惜分飞

由于断电&#xff0c;导致数据库正常open报ORA-600 kcratr_scan_lastbwr错误 Wed Jan 17 18:23:26 2024 ALTER DATABASE MOUNT Successful mount of redo thread 1, with mount id 1028618590 Database mounted in Exclusive Mode Lost write protection disabled Completed:…

【Git】在错误分支上开发了怎么办

情况一&#xff1a;还未提交 git add . 『暂存修改的代码』git stash 『把暂存的文件提交到git的暂存栈』git checkout 『本该提交代码的分支』git stash pop 『取出暂存栈中的代码』 情况二&#xff1a;已提交 git checkout 『不该提交代码提交了代码的分支』git reset HEA…

输入3个字符串,要求将字母按由小到大顺序输出

对于将3个整数按由小到大顺序输出&#xff0c;是很容易处理的。可以按照同样的算法来处理将3个字符串按大小顺序输出。可以直接写出程序。 编写程序&#xff1a; 运行结果&#xff1a; 这个程序是很好理解的。在程序中对字符串变量用关系运算符进行比较&#xff0c;如同对数值…