2

Я начинаю с Unreal Engine 4. Я пришел из Libgdx, и я знаком с использованием клиентов WebSockets в своих играх и NodeJS с «ws» на сервере.Websockets на Unreal Engine 4?

Как всегда, я не могу найти информацию о Websockets и Unreal Engine 4.

Я знаю, что при условии, что он запрограммирован с C++, вы можете добавить внешние статические библиотеки нереального проекта.

Могу ли я использовать эту библиотеку web-C++ C++?

https://github.com/zaphoyd/websocketpp

Будет ли она работать на Windows, Mac и консоли?

Я не эксперт в области C++ и статических библиотек. Пожалуйста, помогите, спасибо!

+0

Возможно, вы заметили, что читали readme по ссылке github, которую вы дали автору (ей), утверждая, что это «Portable/cross platform (Posix/Windows, 32/64bit, Intel/ARM/PPC)». – ChiefTwoPencils

+0

, так что вы думаете, что это сработает? –

ответ

3

Вы можете следить за кодом this tutorial на сокетах TCP.

Вам нужно будет внести некоторые изменения в код, так как он не запускается на UE 4.10 (учебник изначально с 2014 года).

На .h файле определить два таймера ручки:

FTimerHandle TimerHandle_Connection; 
FTimerHandle TimerHandle_Socket; 

О файле .cpp, внутри StartTCPReceiver (...) изменить строку, где таймер установлен на:

GetWorldTimerManager().SetTimer(TimerHandle_Connection, this, &AYourClass::TCPConnectionListener, 0.01, true); 

и TCPConnectionListener (...) изменить строку, где таймер установлен на:

GetWorldTimerManager().ClearTimer(TimerHandle_Connection);//optional, only if you want to stop listening for new connections 
GetWorldTimerManager().SetTimer(TimerHandle_Socket, this, &AYourClass::TCPSocketListener, 0.01, true); 

(Другой вариант должен был бы нить эти функции вместо того, чтобы иметь их в таймерах)

На всякий случай, если вы новичок в UE, не добавляйте код непосредственно в IDE. Перейдите в раздел «Браузер содержимого»> «Добавить новый»> «Новый класс C++». Вы можете создать новый класс, который наследуется от Актера, и когда вы хотите начать слушать соединения, вы создаете этого Актера.

+0

спасибо, отличная информация! будет выглядеть –

+0

Привет jmcorallo. У меня есть прослушиватель TCP в классе PlayerController (например, рекомендуется Rama) и вызвать «Запуск» в конструкторе. Во-первых: это правильный подход? и во-вторых: когда я создаю проект, сбой моего ue4editor дает мне следующее сообщение: «Нарушение доступа - код c0000005 (первый/второй шанс недоступен)» и указывает на линию, где установлен первый таймер. Можете ли вы мне помочь, пожалуйста? – gerric

+0

Использование websocket ограничивает целевую платформу на окнах и html5.Это правда? –

Смежные вопросы