Links

Streams Unreal Engine SDK

You have to establish a WebSocket connection between your Unreal Engine application and your client-side to let them communicate with each other.
If you will send/receive messages from the client side, you have to embed your project into your platform with the iFrame and also integrate the Streams JS SDK as well.

How to Setup Websocket Connection in Unreal Engine

You have to set the Web Socket address as a constant URL like this:
FString WebSocketAddress = "ws://127.0.0.1:7788”;
and, you have to send Header parameters while initializing the Web Socket connection like this:
TMap<FString, FString> WsUpgradeHeaders;
WsUpgradeHeaders.Add(TEXT("Host"), TEXT("127.0.0.1:7788"));
WebSocket = FWebSocketsModule::Get().CreateWebSocket(WebSocketAddress, TEXT("ws"), WsUpgradeHeaders);

Integration with Plugins

Zephyr Entertainment's Blueprint WebSockets Plugin

First of all, you have to set up the plugin and integrate it into your application by following the plugin integration guidelines. Also, you can directly use their Blueprint template and configure it according to the unique flow of your application.
After integrating the plugin according to their guidelines, you have to replace Create WebSocket connection with Create WebSocket with Headers connection to an additional header to your Blueprint.
Then, you have to set the Server URL as ws://127.0.0.1:7788 and set the Header parameters as below,

Pandores's BlueprintWebSocket Plugin

First of all, you have to set up the plugin and integrate it into your application by following the plugin integration guidelines, and configure it according to the unique flow of your application.
While integrating the Blueprint flow you have to Set Header and attach this header while creating Web Socket Connection.
You have to set the Server URL as ws://127.0.0.1:7788 and set the Header parameters as,

Predefined Actions

You can initiate action to open a specific URL from the default browser of your visitor from inside your application. You should send a Websocket message by following the format below, message should be JSON formatted plain text message.
{\"$type\":\"8\",\"Url\":\"https://www.vagon.io\"}
{
"$type": "8",
"Url": "https://www.vagon.io"
}
When your build is working with Vagon Streams, there is a prebuilt Web Socket server to send/receive your messages, so you don't need to create a separate Web Socket server in your application.
However, if you are testing your build locally you might need to change the URLs shared below to your local Web Socket server to send/receive your messages.

Show On-Screen Keyboard Button

If your visitors are using your Applications on mobile/tablet devices, you can also allow them to type with the on-screen keyboard inside Vagon Streams. The good part is, you can manage the visibility of the on-screen keyboard button directly from your application, and trigger actions to show the keyboard button when the visitor focuses on an input inside the application. To show the On Screen Keyboard Button, you should send a Websocket message by following the format below, message should be JSON formatted plain text message.
{\"$type\":\"9\"}
{
"$type": "9"
}

Hide On-Screen Keyboard Button

When the focus changes from the input, you can hide the on-screen keyboard button from the screen as well. Again, you should send a Websocket message by following the format below, message should be JSON formatted plain text message.
{\"$type\":\"10\"}
{
"$type": "10"
}

Enable 360 View Mode

Independently from Application Configurations, you can enable 360 View Mode inside your application by sending the following message via Websocket.
After sending this message, 360 View Mode will be activated with the first mouse click on Stream.
{\"$type\":\"11\"}
{
"$type": "11"
}

Disable 360 View Mode

Independently from Application Configurations, you can disable 360 View Mode inside your application by sending the following message via Websocket.
{\"$type\":\"12\"}
{
"$type": "12"
}

Keep Stream Alive - Reset Idle Timer

When the Idle Duration Limit is active, you can reset the Idle Timer by sending the message below via Websocket.
{\"$type\":\"13\"}
{
"$type": "13"
}

Turn Off Stream Machine

You can send the following message via Websocket to turn off the Stream Machine which is running the related application.
{\"$type\":\"14\"}
{
"$type": "14"
}

Resize Frame / Stream

Updates the streaming resolution and matches the iframe height and width when initiated.
{\"$type\":\"16\"}
{
"$type": "16"
}

Set Streaming Quality

Quality parameters can be set as "standard", "moderate" or "high". Session will be refreshed automatically after the quality is set.
{\"$type\":\"17\",\"Quality\":\"standard\"}
{
"$type": "17"
"Quality": "standard"
}

Request Session Information

Triggers the Session Information event, data must be collected via Session Information event.
{\"$type\":\"18\"}
{
"$type": "18"
}

Returned Objects

Message responses will be returned as JSON-formatted string to WebSocket onMessage events. Additional parsing operation may be required.

Session Information Event

{
"$type": "19"
"session": {
ping: 150,
os: "windows",
device_type: "desktop",
},
"machine": {
"status": "runinng",
"friendly_status": "ready",
"connection_status": "connected",
"region": "dublin",
"uid": "05545648-c292-4ef4-b571-d10797f83069",
"application_id": 1,
"stream_id": 1,
"machine_id": 1,
}
}

Connection Information

isConnected returns true when user joins to the Session, returns false when leaves the session.
{
"$type": "15"
"isConnected": true
}