Wrapper UDP ActorComponent de conveniência para o Unreal Engine.
Este pode não ser o wrapper mais sensato para o seu caso de uso, mas deve coexistir com https://github.com/getnamo/SocketIOClient-Unreal com fluxo de trabalho semelhante.
Envolve a funcionalidade Unreal udp integrada como um componente de ator ( UDPComponent ) com recursos de envio e recebimento. Funciona por meio do wrapper c++ FUDPNative que pode ser incluído e vinculado novamente em uma classe de componente não ator personalizada, se desejado.
Confirmado o trabalho com node.js dgram (veja exemplo echo server Gist para teste).
Servidor de discórdia
Selecione um ator de sua preferência. Adicione o componente UDP a esse ator.
Selecione o componente recém-criado e modifique as configurações padrão
Por padrão, o componente ator udp abrirá automaticamente os soquetes de envio e recebimento no início da reprodução. Se você estiver interessado apenas em enviar, desmarque a abertura automática do recebimento; inversamente, desmarque o envio de abertura automática se não estiver interessado em enviar.
Além disso, se você quiser conectar/ouvir no seu próprio tempo, desmarque qualquer um deles e conecte-se manualmente através, por exemplo, do evento principal
Receber IP de 0.0.0.0 escutará todas as conexões na porta especificada.
Assim que seu soquete de envio for aberto (soquete preparado com mais precisão para envio, já que você não recebe um retorno de chamada no UDP como no TCP), use emit para enviar alguns dados, conversão utf8 fornecida pelo plugin socket.io. NB: se você esquecer de abrir seu soquete, o emit abrirá automaticamente nas configurações padrão e emitirá.
retorna verdadeiro se a emissão for processada. NB: o udp não é confiável, então isso não é um retorno de que os dados foram recebidos do outro lado, para uma conexão confiável considere o TCP.
Depois de abrir seu soquete de recebimento, você receberá dados no evento OnReceivedBytes
que você pode converter em strings ou estruturas convenientes via socket.io (opcional e requer que seu servidor envie dados como strings JSON).
Desde a versão 0.9.5, quando você abre um soquete de envio, ele gera uma porta de envio vinculada que você pode usar para escutar eventos udp no lado receptor. Isso deve ajudar na perfuração do NAT devido ao comportamento esperado.
Para usar esse recurso, você pode usar Deve abrir o recebimento para a porta de envio vinculada, o que fará com que qualquer recebimento aberto se vincule automaticamente ao seu IP de envio e à porta de envio vinculada.
Ou se você quiser fazer isso manualmente, você pode desmarcar Deve abrir automaticamente receber e, em seguida, abrir com configurações próprias, por exemplo, enviar evento de abertura de soquete com a porta vinculada.
Cada versão inclui o plug-in do cliente socket.io, esse plug-in deve ser usado para controle confiável e, em seguida, o componente de dados mais recentes/em tempo real da sua rede pode ser canalizado usando este plug-in udp. Considere registrar a data e hora de seus dados para saber quais pacotes descartar/ignorar.
Funciona imediatamente.
Se você estiver usando isso como um plugin de projeto, você precisará converter seu projeto somente de blueprint para misto (bp e C++). Siga estas instruções para fazer isso: https://allarsblog.com/2015/11/04/converting-bp-project-to-cpp/
por exemplo, usando a opção de menu Arquivo para converter seu projeto em misto adicionando um arquivo C++.
Licenciado pelo MIT.
Em grande parte inspirado em https://wiki.unrealengine.com/UDP_Socket_Sender_Receiver_From_One_UE4_Instance_To_Another.