ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

unreal ue4 虚幻 websocket Server websocket服务 插件使用及下载 非官方自己写的

2022-02-20 16:07:35  阅读:418  来源: 互联网

标签:插件 LJason console 示例 Server ws ue websocket event


因为最近工作需要,所以需要一个websocket服务,用来直接和多个网页交互

类似遥控器的远程控制吧

但是看了一下商城...额太贵了

github上面也没有合适的,多数都是client端

so我自己写一个吧


github地址:https://github.com/ljason1993/WebSocketServer-unreal

这个代码是我从官方的 Experimental WebSocket Networking Plugin 里面扣出来的

所以也需要引入该插件,当然插件里面已经写好了,装插件也会自动开启,放心啦

目前支持功能

1.开启server服务

2.支持多个socket客户端连接

3.支持双向信息

4.支持中文

5.源码是开放的,大家随便改,加自己喜欢的功能喽


示例已经写好,先看c++的派生类  

\Plugins\ZWebSocketServer\Content\Blueprint\ZBPCPP_WebSocketServer

里面就一个事件及事件分发器 用来发送从h5客户端接收回来的信息

 

只需要使用者绑定上即可,msg就是字符串信息,至于你喜欢json还是xml还是巴拉巴拉你自己做决定就行啦

再看示例场景

 \Plugins\ZWebSocketServer\Content\Level\Example

 怎么打开,怎么绑定事件,怎么发送信息,都有示例

注意:发送信息是发送给所有客户端,按客户id发送这个需要大家自己努力啦,我只是开个头哦


关于web客户端怎么和ue客户端连接,我写个简单示例,大家看看就行啦

注意我测试的浏览器有 edge 及 chrome (我试过我常用的搜狗浏览器不行的,缺东西)

		function MakeWebSocket() {
			let ws = new WebSocket("ws://192.168.0.119:26217");

			ws.onmessage = function (event) {
				event.data.text().then(text => {
					console.log(" >LJason< 日志:字符串 ",text);
					console.log(" >LJason< 日志:对象 ",JSON.parse(text));
				});
			};

			ws.onerror = function (event) {
				console.error(" >LJason< 错误:我BUG了");
			};

			ws.onclose = function (event) {
				console.warn(" >LJason< 警告:我关闭了",event);
			};

			ws.onopen=function (event) {
				console.log(" >LJason< 日志:我打开了++++++++++++++",event);
			}
		}

点击ue播放,看到该打印代表成功(示例里面写的端口是 26217 大家按需更改)

 在h5上使用上面的测试即可连接成功

 先用ue在测试场景内 按 1

测试发送信息

 web端接收成功

再用web端发送信息

在console直接输入

ws.send("你好ue")

回车发送,ue就会收到了

 ok,简单粗暴,昂我正在往github整理上传的路上,应该今天就搞定

后续应该会上架到ue商城(额步骤太麻烦了,可能会比较晚吧,希望能成功吧)

标签:插件,LJason,console,示例,Server,ws,ue,websocket,event
来源: https://blog.csdn.net/ljason1993/article/details/123031678

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有