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

因为最近工作需要,所以需要一个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客户端接收回来的信息

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

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

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

再看示例场景

 \Plugins\ZWebSocketServer\Content\Level\Example

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

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

注意:发送信息是发送给所有客户端,按客户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 大家按需更改)

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

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

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

 先用ue在测试场景内 按 1

测试发送信息

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

 web端接收成功

再用web端发送信息

在console直接输入

ws.send("你好ue")

回车发送,ue就会收到了

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

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

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

上一篇:GeoServer发布tiff格式地图并进行切片缓存


下一篇:无法解决 equal to 运算中 “Chinese_PRC_CI_AI_KS_WS“ 和 “Chinese_PRC_CI_AS“ 之间的排序规则冲突