因为最近工作需要,所以需要一个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商城(额步骤太麻烦了,可能会比较晚吧,希望能成功吧)