Conveniencia del contenedor UDP ActorComponent para Unreal Engine.
Puede que este no sea el contenedor más sensato para su caso de uso, pero está destinado a coexistir con https://github.com/getnamo/SocketIOClient-Unreal con un flujo de trabajo similar.
Incluye la funcionalidad integrada de Unreal udp como un componente actor ( UDPComponent ) con capacidades de envío y recepción. Funciona a través del contenedor FUDPNative de C++ que se puede incluir y volver a vincular en una clase de componente personalizada que no sea actor si se desea.
Se confirmó que funciona con el dgram de node.js (consulte el ejemplo de esencia del servidor de eco para realizar pruebas).
Servidor de discordia
Seleccione un actor de su elección. Agregue el componente UDP a ese actor.
Seleccione el componente recién creado y modifique la configuración predeterminada
De forma predeterminada, el componente udp actor abrirá automáticamente los sockets de envío y recepción al comenzar la reproducción. Si solo está interesado en enviar, desmarque la opción para abrir automáticamente la recepción; por el contrario, desmarque el envío de apertura automática si no está interesado en enviar.
Además, si desea conectarse/escuchar en su propio tiempo, desmarque cualquiera de los dos y conéctese manualmente mediante, por ejemplo, un evento clave.
Recibir IP de 0.0.0.0 escuchará todas las conexiones en el puerto especificado.
Una vez que se abre el socket de envío (un socket preparado con mayor precisión para el envío, ya que no recibe una devolución de llamada en UDP como en TCP), use emit para enviar algunos datos, conversión utf8 proporcionada por el complemento socket.io. NB: si olvida abrir su socket, emit se abrirá automáticamente en la configuración predeterminada y emitirá.
Devuelve verdadero si la emisión se procesó. NB: udp no es confiable, por lo que esto no es una devolución de que los datos se recibieron en el otro extremo; para una conexión confiable, considere TCP.
Una vez que haya abierto su socket de recepción, recibirá datos sobre el evento OnReceivedBytes
que puede convertir en cadenas o estructuras convenientes a través de socket.io (opcional y requiere que su servidor envíe datos como cadenas JSON).
Desde v0.9.5, cuando abre un socket de envío, generará un puerto de envío vinculado que puede usar para escuchar eventos udp en el lado receptor. Esto debería ayudar a perforar NAT debido al comportamiento esperado.
Para usar esta función, puede usar Debería abrir la recepción al puerto de envío vinculado , lo que hará que cualquier recepción abierta se vincule automáticamente a su IP de envío y al puerto de envío vinculado.
O si desea hacer esto manualmente, puede desmarcar Debería abrir automáticamente recibir y luego abrir con su propia configuración, por ejemplo, enviar evento de apertura de socket con el puerto vinculado.
Cada versión incluye el complemento de cliente socket.io, ese complemento está diseñado para usarse para un control confiable y luego el componente de datos más actualizado/en tiempo real de su red se puede canalizar usando este complemento udp. Considere poner una marca de tiempo en sus datos para que pueda saber qué paquetes descartar/ignorar.
Funciona desde el primer momento.
Si está utilizando esto como complemento de proyecto, deberá convertir su proyecto de solo plano a mixto (bp y C++). Siga estas instrucciones para hacerlo: https://allarsblog.com/2015/11/04/converting-bp-project-to-cpp/
por ejemplo, usar la opción de menú Archivo para convertir su proyecto a mixto agregando un archivo C++.
Licencia MIT.
Inspirado en gran medida en https://wiki.unrealengine.com/UDP_Socket_Sender_Receiver_From_One_UE4_Instance_To_Another.