1、使用到的socket插件是:https://github.com/getnamo/socketio-client-ue4
2、可以参考的demo:https://github.com/getnamo/socketio-client-ue4-example
步骤:1、安装上面提到的UE4插件socketio-client-ue4,这个插件在官方商城也有,但是要收费。直接按照github上的方式安装是开源免费的。要注意,安装完插件要重启UE4的项目才能使用。
2、新建一个Actor的蓝图类,因为socket需要附到actor上才能使用。在actor中引入SocketIOClient组件。
3、准备好需要需要使用的socket服务端,上面demo中可以自己本地运行一个node js的socket服务端,也可以用自己服务器的。
4、在actor的event graph中开始写蓝图逻辑。如图,分别在websocket连接建立(on connected)和disconnected时,打印了两个日志。
5、然后我用了一个键盘的C键绑定了事件监听的函数,这个可以根据自己的需要,放到event begin开始的时候触发,其实就是一个触发时机的区别。Bind Event to Function这个函数的作用就是将ws中根据指定的event名称调用指定的函数,如图就是收到chatMessage就调用ReceiveChatMessage函数。

6、自定义一个ReceiveChatMessage函数,来处理收到消息后的逻辑

7、还要一个问题,就是socket是什么时候创建的连接,这个其实在SocketIOClient组件的属性上,有一项是
Editable when Inherited被勾选上了。这个意思是当Actor被实例化的时候就会创建连接。这个也可以不勾选,自己去触发连接创建。

网友回复