惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
小众软件
小众软件
I
InfoQ
有赞技术团队
有赞技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Martin Fowler
Martin Fowler
月光博客
月光博客
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
V
Visual Studio Blog
博客园 - 叶小钗
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
GbyAI
GbyAI
P
Proofpoint News Feed
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - ITman彪叔

赋能UE运行态编辑平台: 网络图片下载的插件改造与复盘 召回率暴涨!“层级化分片”与“降噪”拯救 RAG 系统 基于FastMCP打通业务系统与AI:构建智能协作新范式 在 Dify 中通过 MCP 集成本地 FastMCP 服务避坑指南 从分形到森林——使用 Three.js 创建逼真的 3D 树木 Threejs 视频融合 UE5 小部件 组合框(键)ComboBox (Key) Tesseract OCR 页面分割模式解析 Java MQTT 主流开发方案对比 Java Modbus主流开发方案对比 Java OPC UA 开发方案全对比:开源、商业、集成与官方标准 Nodejs打包 Webpack 中 __dirname 的正确配置与行为解析 强制 pnpm 使用 IPv4 而不是 IPv6 的终极解决方案指南 uniapp 微信小程序 调试 UE Geometry_Script 程序化建模 UE MultiLineTraceByChannel函数返回只有一个对象的问题 UE Spline 样条网格体组件添加碰撞 Three光源Target位置改变光照方向不变的问题及解决方法 UE5 射线检测排除隐藏的Actor UE5打包SDK未正确安装的问题 判断两个矩形是否相交(Rect Intersection) 电力布局三维编辑器功能设计 UE4 WebUI使用指南2-通信
UE Websocket 通信
ITman彪叔 · 2024-08-07 · via 博客园 - ITman彪叔

项目中遇到UE需要对接Websocket协议接收实时数据。 所以需要实现一个Websocket Client的功能。 由于UE引擎已经集成了Websocket库(基于libwebsocket),可以通过集成的WebSocket库来比较难容易实现WebSocket Client 和Server进行通信。

编程实现(C++)

需要使用C++语言进行编程。 下面是相关的API接口:
https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/WebSockets?application_version=5.4

image.png

当然也可以使用原生的libwebsocket库进行开发。

相关代码网络上很多,可以自行搜索。

插件

如果你习惯使用了蓝图,而不习惯使用C++,那么可以通过插件的方式的方式进行通信,插件也基本上是使用C++写的,公开接口到蓝图。 比如下面的免费插件:
17228248714212.png

插件版本问题

插件版本升级

不过该插件的版本最高只能支持到5.0,如果需要支持到高版本的插件。
一种方法是使用ue的 RunUAT.bat命令进行升级,可以升级到你需要的响应版本。 比如笔者使用这种方式把插件从5.0 升级到了5.2。

其他插件

另外一种方法是搜索其他的插件,比如:

17228376537376.png

插件的使用

image.png

首先create一个WebSocket对象,然后可以监听连接成功,连接失败,接收数据等事件,进行通信。

WSS的问题

在实际使用过程中,如果是wss协议,可能存在连接不上的情况,可以添加配置试试:
BaseEngine.ini 中添加:

[LwsWebSocket]  
bDisableCertValidation=true

image.png

参考文档

https://unrealcommunity.wiki/websocket-client-cpp-5vk7hp9e
https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/WebSockets?application_version=5.4
https://forums.unrealengine.com/t/ue5-websocket-wss-problem/502399
https://forums.unrealengine.com/t/how-to-properly-implement-iwebsocket-and-send-packets-with-high-frequency/1206501

最后,关注公号“ITMan彪叔” 可以添加作者微信进行交流,及时收到更多有价值的文章。