HTTP 스트리머 REST API

HTTP 스트리머의 REST API 개요입니다.

Choose your operating system:

Windows

macOS

Linux

다음 요청은 HTTP Streamer (스트리머)가 내리며 리플레이 서버에서 처리해야 합니다. 대부분의 경우, 단순히 적합한 위치에 주어진 정보를 녹화하거나, 그 정보를 시청자가 요청했을 때 제공해 주는 것이면 충분할 것입니다. 참고로 이 시점에서 리플레이는 일반적으로 단일 파일에 저장되지 않습니다. 리플레이 개별 청크 각각은 일반적으로 별도의 파일에 저장됩니다. 이벤트 데이터는 리플레이에 연결되어 있긴 하지만 별도로 저장되는데, 이벤트 검색은 어느 리플레이에 속하는지 알지 못해도 가능하기 때문입니다. 심지어 이벤트 그룹은 해당 그룹에 속하는 (모든 플레이어의) 모든 이벤트 목록을 포함해서 별도의 파일로 저장될 것입니다.

HTTP 스트리머의 REST API 는 게임 서버에서 리플레이 서버로 리플레이를 스트리밍하는 (업로드) 기능, 리플레이 서버에서 게임, 시청자, 서버로 라이브 또는 미리 녹화된 리플레이를 스트리밍하는 (다운로드) 기능, 또는 서버에 있는 리플레이 관련 정보를 질의하는 (검색) 기능을 제공합니다. 자체 리플레이 서버를 구현하려면, 다음 HTTP 요청은 물론, 게임에 따른 부가 요청에 대해서도 반응을 해 줘야 합니다.

업로드 요청

Start Streaming

스트리밍 시작 - 리플레이 스트림 업로드 시작 요청을 전송합니다.

문법

<Server URL>replay/<Session Name Override>?app=<Replay Version AppString>&version=<Replay Network Version>&cl=<Replay CL>&friendlyName=<Platform Friendly Name>

디테일

항목

Request Method

POST

Content Type

application/json

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Session Name Override

(옵션, 앞의 "/" 포함.) 리플레이 이름입니다. 보통 GUID 를 포함합니다.

리플레이 서버는 리플레이 요청시 이 이름을 인식할 것으로 기대합니다. 세션 이름으로 반환되어야 하는데, 무시될 수는 있지만 스트리머는 반환 이름을 따를 것입니다.

Replay Version AppString

플레이중인 게임을 설명하는 사용자 정의 스트링입니다.

이 값은 HTTP 스트리머가 리플레이 목록을 요청할 때 필터링에 사용되는 용도입니다.

Replay Network Version

리플레이 네트워크 버전 - 플레이중인 게임 버전을 설명하는 사용자 정의 스트링입니다.

이 값은 리플레이 필터링 목록에도 사용되므로, 리플레이 데이터와 함께 저장해야 합니다.

Replay CL

플레이중인 빌드의 ChangeList 번호입니다.

이 값은 리플레이 목록 필터링에 사용됩니다.

Platform Friendly Name

플랫폼 친근 이름 - 플레이중인 게임이 실행되고 있는 플랫폼입니다.

이 값은 사용자에게 표시할 수 있으며, 리플레이 목록 요청시 반환할 것으로 기대합니다. 하지만 리플레이 목록 요청으로는 게임 서버에 전송되지 않을 것이므로, 필터로 사용될 것으로는 기대하지 않습니다.

반응

FNetworkReplayStartUploadingResponse 유형 반응을 기대하는데, 여기에는 "sessionId" 스트링이 정의된 JSON 데이터가 포함되어 있습니다. 이 값은 HTTP 스트리머와 앞으로 있을 통신에 Session Name 으로 사용됩니다. <Session Name Override> 옵션이 제공된 경우, 반환되는 "sessionId" 와 그에 따른 최종 <Session Name> 은 같은 값이 될 것입니다. 이런 식으로 게임에서 세션 이름을 요청하는 것입니다.

이름

유형

내용

Users

String Array

게임에 존재하는 사용자 목록입니다. 리플레이에 태그로 저장될 것입니다.

Upload Header

헤더 업로드 - 아카이브 헤더를 구성하는 바이너리 데이터 업로드 요청을 전송합니다. 이 헤더는 Session Name 에 연결된 헤더 파일에 녹화될 것입니다.

문법

<Server URL>replay/<Session Name>/file/replay.header?numChunks=<Stream Chunk Index>&time=<Total Demo Time In MS>

디테일

항목

Request Method

POST

Content Type

application/octet-stream

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Session Name

업로드중인 리플레이 이름입니다.

이 이름은 초기 업로드 요청에 대한 반응으로 리플레이 서버가 제공한 값과 일치할 것입니다.

Stream Chunk Index

전송중인 현재 리플레이 데이터 청크 인덱스입니다.

스트림 청크는 크기가 균일하지는 않지만, 순서 정렬은 이 값을 엄격하게 지킵니다.

Total Demo Time In MS

MS 단위 총 데모 시간 - 현재 스트림 청크 끝까지의 데모 총 시간입니다.

바이너리 리플레이 데이터를 해석할 필요 없이 지금까지 업로드된 리플레이 데이터 길이가 ms 단위로 얼마나 되는지 알려줍니다.

Flush Stream

스트림 비우기 - 스트림을 비우는 요청을 전송합니다. 내용는 바이너리 리플레이 데이터로, 압축 가능합니다. 이 데이터는 Stream Chunk Index 로 표시되는 청크를 나타냅니다. 청크는 데이터 크기나 커버하는 기간이 다를 수 있기에, 각 청크는 별도의 파일에 저장하는 것이 좋습니다. HTTP 스트리머는 10 초마다 이 시스템을 통해 현재 스트림 데이터를 비우기 시도할 것입니다. 다음 번 비우기까지의 간격은 "httpReplay.ChunkUploadDelayInSeconds" 콘솔 변수로 변경할 수 있습니다.

압축을 켜기 위해서는, FHttpNetworkReplayStreamer 자손 클래스에서 다음의 함수 셋을 덮어써야 합니다:

  • SupportsCompression true 를 반환해야 합니다.

  • CompressBuffer 는 압축을 한 뒤 오류가 발생하지 않은 경우 true 를 반환해야 합니다.

  • DecompressBuffer 는 압축을 한 뒤 오류가 발생하지 않은 경우 true 를 반환해야 합니다.

문법

<Server URL>replay/<Session Name>/file/stream.<Stream Chunk Index>?numChunks=<Total Chunks>&time=<Total Demo Time In MS>&mTime1=<Start Time In MS>&mTime2=<End Time In MS>&absSize=<Total Uploaded Bytes>

디테일

항목

Request Method

POST

Content Type

application/octet-stream

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Session Name

업로드중인 리플레이 이름입니다.

이 이름은 초기 업로드 요청에 대한 반응으로 리플레이 서버가 제공한 값과 일치할 것입니다.

Stream Chunk Index

현재 전송중인 리플레이 데이터 청크 인덱스입니다.

스트림 청크는 크기가 균일하지는 않지만, 순서 정렬은 이 값을 엄격하게 지킵니다.

Total Chunks

지금까지 전송된 청크의 수입니다.

이 값은 항상 Stream Chunk Index 보다 1 큽니다.

Total Demo Time In MS

현재 스트림 청크 끝까지의 데모 총 시간입니다.

바이너리 리플레이 데이터를 해석할 필요 없이 지금까지 업로드된 리플레이 데이터 길이가 ms 단위로 얼마나 되는지 알려줍니다.

Start Time In MS

이 스트림 청크가 시작되는 지점의 총 실행 시간입니다.

시간은 밀리초 단위입니다. 스트리밍 리플레이의 경우, 시청자가 스크러빙으로 보려는 청크를 알아내는 데 사용할 수 있습니다.

End Time In MS

이 스트림 청크가 끝나는 지점의 총 실행 시간입니다.

시간은 밀리초 단위입니다. 스트리밍 리플레이의 경우, 시청자가 스크러빙으로 보려는 청크를 알아내는 데 사용할 수 있습니다.

Total Uploaded Bytes

현재 스트림 청크 끝까지의 데모 총 크기입니다.

지금까지 업로드된 리플레이 데이터 크기를 바이트 단위로 알려줍니다.

Add/Update Event

이벤트 추가/업데이트 - 리플레이 이벤트 추가 또는 업데이트 요청을 전송합니다. 내용에는 녹화시킬 바이너리 이벤트 데이터가 들어갑니다. 이 데이터는 DemoNetDriver 를 통한 전송 및 사용자 정의 가능합니다. 이 HTTP 요청의 두 번째 버전은 기존 이벤트를 변경 또는 업데이트하는 데 사용할 수 있는 반면, 첫 번째 버전은 새 이벤트를 만드는 데 사용됩니다.

참고로 이벤트는 리플레이와 별도 저장되게 되어있는데, 그래서 이벤트 이름에서 GUID 를 사용합니다. 각 이벤트는 자기가 속하는 리플레이를 알고 있으며, 그래서 이벤트가 리플레이 자체에 삽입되지 않는 것입니다.

문법

<Server URL>replay/<Session Name>/event?group=<Group Name>&time1=<Event Time In MS>&time2=<Event Time In MS>&meta=<Meta Tag>&incrementSize=false
<Server URL>replay/<Session Name>/event/<Session Name>_<Event Name>?group=<Group Name>&time1=<Event Time In MS>&time2=<Event Time In MS>&meta=<Meta Tag>&incrementSize=false

디테일

항목

Request Method

POST

Content Type

application/octet-stream

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Session Name

업로드중인 리플레이 이름입니다.

이 이름은 초기 업로드 요청에 대한 반응으로 리플레이 서버가 제공한 값과 일치할 것입니다.

Group Name

이 이벤트가 들어있는 이벤트 그룹 이름입니다.

이벤트는 목록 필터링을 위해 그룹에 넣을 수 있으며, 스포츠 관련 타이틀에서 모든 페널티 관련 호출을 묶는 경우가 그렇습니다.

Event Name

추가 또는 업데이트중인 이벤트 GUID 입니다.

(옵션) 시청자가 요청할 수 있는 특정 네임드 이벤트 관련 정보입니다. 지정되지 않은 경우, 그 그룹에 이벤트를 나열하는 것으로 이벤트를 찾을 수 있습니다.

Event Time In MS

이 이벤트가 벌어질 때의 리플레이 시간입니다.

시간은 밀리초 단위입니다. "time1" 과 "time2" 를 각각 시작 시간과 끝 시간으로 사용할 수는 있지만, 기본 HTTP 스트리머에는 항상 같은 값입니다.

Meta Tag

이 이벤트에 연결된 메타 태그입니다.

리플레이 목록은 요청에 지정된 것이 있는 경우 메타 태그로 필터링 가능합니다. Meta Tag 는 전송 도중 HTTP 스트리미너가 URL 인코딩할 것입니다.

Stop Streaming

스트리밍 중지 - 리플레이 업로드가 완료되었음을 나타내는 요청을 전송합니다.

문법

<Server URL>replay/<Session Name>/stopUploading?numChunks=<Total Num Chunks>&time=<Total Time In MS>&absSize=<Total Bytes Uploaded>

디테일

항목

Request Method

POST

Content Type

application/octet-stream (내용가 전송되지 않음)

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Session Name

업로드중인 리플레이 이름입니다.

이 이름은 초기 업로드 요청에 대한 반응으로 리플레이 서버가 제공한 값과 일치할 것입니다.

Total Num Chunks

완료된 리플레이의 청크 수입니다.

Total Time In MS

리플레이의 밀리초 단위 총 실행 시간입니다.

Total Bytes Uploaded

리플레이의 바이트 단위 총 크기입니다.

다운로드 요청

Request Start Download

다운로드 시작 요청 - 이 요청의 목적은 사용자 이름을 기반으로 리플레이 서버에 접속하여 리플레이 다운로드를 시작하는 것입니다. 이 요청이 성공적으로 이루어진 직후, HTTP 스트리머는 리플레이 헤더 다운로드 요청을 전송한 뒤, 리플레이의 모든 체크포인트를 열거하기 위한 요청을 다시 전송합니다.

문법

<Server URL>replay/<Session Name>/startDownloading?user=<User Name>

디테일

항목

Request Method

POST

Content Type

None

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Session Name

업로드중인 리플레이 이름입니다.

이 이름은 초기 업로드 요청에 대한 반응으로 리플레이 서버가 제공한 값과 일치할 것입니다.

User Name

고유 넷 ID (GUID) 입니다.

클라이언트 머신에 로그인 선호되는 네트워크 GUID 입니다. 이 값은 엔진에서 오며, 사용자가 제공하도록 되어있지 않습니다.

반응

이 요청에 예상되는 반응은 FNetworkReplayStartDownloadingResponse 유형으로, JSON 데이터가 들어있습니다.

이름

유형

내용

State

String

"Live" 라는 단어는 시청중인 게임이 현재 라이브 진행중이라는 뜻입니다. 그 외의 경우, 리플레이는 미리 녹화된 것으로 간주됩니다.

NumChunks

Integer

0 이외의 값으로 예상되며, 스트리밍 진행에 따라 업데이트 가능합니다 (라이브 리플레이에 사용됩니다).

Time

Integer

리플레이의 (MS 단위) 총 시간입니다. State 에 라이브 스트림이라 지정된 경우 변할 수 있습니다.

ViewerId

String

리플레이 서버가 할당한 고유 이름으로, 게임 서버가 리플레이 데이터 청크를 추가 요청할 때 사용합니다.

Request Header

문법

<Server URL>replay/<Session Name>/file/replay.header

디테일

항목

Request Method

GET

Content Type

None

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Session Name

업로드중인 리플레이 이름입니다.

이 이름은 초기 업로드 요청에 대한 반응으로 리플레이 서버가 제공한 값과 일치할 것입니다.

반응

내용 부분에 리플레이 헤더가 있는 반응을, 바이너리 데이터로 기대합니다.

Request Checkpoint Data

문법

<Server URL>replay/<Session Name>/event?group=checkpoint

디테일

항목

Request Method

GET

Content Type

None

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Session Name

업로드중인 리플레이 이름입니다.

이 이름은 초기 업로드 요청에 대한 반응으로 리플레이 서버가 제공한 값과 일치할 것입니다.

반응

체크포인트 데이터가 들어있는 FHttpResponsePtr 유형 반응을 JSON 포맷 스트링으로 기대합니다.

이름

유형

내용

events

Array

이 표의 다른 모든 필드로 구성된 배열 항목이 들어있습니다.

id

String

체크포인트의 이름 (GUID) 입니다.

group

String

있다면, 이벤트가 속하는 그룹입니다.

meta

String

있다면, 이 이벤트에 연관된 Meta Tag 스트링입니다.

time1

Integer

이벤트의 (MS 단위) 시작 시간입니다.

time2

Integer

이벤트의 (MS 단위) 끝 시간입니다. 종종 시작 시간과 같습니다.

참고로 이는 엄밀히 말하면 이벤트 그룹에 대한 일반 요청입니다. "체크포인트"가 여기 명시적으로 지정되기는 하지만, 리플레이 서버는 "그룹" 에 대한 다른 값을 처리하고 주어진 그룹에 대한 모든 이벤트를 보고할 수 있어야 할 것입니다.

Request Stream Chunk

스트림 청크 요청 - 시청자가 이름을 붙인 특정 스트림 청크에 대한 요청입니다. 이 요청은 이미 다운로드중인 청크가 있는 동안에는 전송되지 않습니다.

문법

<Server URL>replay/<Session Name>/file/stream.<Stream Chunk Index>

디테일

항목

Request Method

GET

Content Type

None

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Session Name

업로드중인 리플레이 이름입니다.

이 이름은 초기 업로드 요청에 대한 반응으로 리플레이 서버가 제공한 값과 일치할 것입니다.

Stream Chunk Index

요청중인 현재 리플레이 데이터 청크의 인덱스입니다.

스트림 청크는 크기가 균일하지 않으나, 순서는 정확히 이 값으로 정해집니다.

반응

예상되는 반응에는 청크 관련 정보가 약간 포함된 헤더가 있으며, 그 내용은 리플레이 데이터의 바이너리 청크입니다. 바이너리 데이터는 압축이 지원되는 경우 압축 가능합니다. 헤더에 예상되는 필드는 다음과 같습니다:

헤더 필드 이름

설명

NumChunks

스트림의 청크 총 개수입니다. 스트리밍 게임에는 유용할 수 있는데, 사용자에게 시청 도중 새로 생성된 청크 수를 알려주기 때문입니다.

Time

리플레이의 (MS 단위) 총 길이입니다. NumChunks 와 마찬가지로, 리플레이가 라이브인 경우 이 값은 시청 세션 도중 변할 수 있습니다.

State

이 변수에 인식되는 값은 "Live" 하나입니다. 이 변수가 없거나 값이 다른 경우, 스트리머는 라이브가 아닌 스트리밍 모드로 전환됩니다.

MTime1

MS 단위 스트림 시작 시간입니다. 라이브 리플레이 스트림의 경우 0 이외의 값이 될 수 있습니다. 이 변수는 데이터 청크가 전송된 경우에만 검사합니다. 즉 스트리머가 다운로드한 첫 청크가 되거나, 라이브 스트림이 됩니다.

MTime2

MS 단위 스트림 끝 시간입니다. 들어오는 청크 수가 많아지면서 변할 수 있습니다. 데이터 청크가 전송되거나, 리플레이가 라이브인 경우 항상 이 변수를 검사합니다.

압축을 켜기 위해서는, FHttpNetworkReplayStreamer 자손 클래스에서 다음의 함수 셋을 덮어써야 합니다:

  • SupportsCompression true 를 반환해야 합니다.

  • CompressBuffer 는 압축을 한 뒤 오류가 발생하지 않은 경우 true 를 반환해야 합니다.

  • DecompressBuffer 는 압축을 한 뒤 오류가 발생하지 않은 경우 true 를 반환해야 합니다.

Enumerate Events for Replay

리플레이용 이벤트 열거 - DemoNetDriver 에서 바로 호출할 수 있습니다. 게임 프로젝트에서 언제든지 가능하다는 뜻입니다. 이 요청은 리플레이 서버가 ( Session Name 으로 식별되는) 특정 리플레이 관련 모든 이벤트 목록에 특정 이벤트 그룹 필터를 적용한 것을 전송하도록 요청합니다. 그룹 이름이 빈 것은 물론 "group" 인수가 부족한 것도 지원할 것을 추천합니다.

문법

<Server URL>replay/<Session Name>/event?group=<Group Name>"

디테일

항목

Request Method

GET

Content Type

None

반응

이 요청에 대한 반응으로 받은 내용은 FReplayEventList FReplayEventListItem 에 해당하는 JSON 포맷 스트링일 것으로 기대합니다.

이름

유형

내용

events

Array

이 표의 다른 모든 칸을 이루는 요소가 들어있습니다.

id

String

체크포인트의 이름 (GUID) 입니다.

group

String

있는 경우, 이벤트가 속하는 그룹입니다.

meta

String

있는 경우, 이 이벤트에 연관된 Meta Tag 스트링입니다.

time1

Integer

이벤트의 (MS 단위) 시작 시간입니다.

time2

Integer

이벤트의 (MS 단위) 끝 시간입니다. 종종 시작 시간과 같습니다.

Refresh Viewer

시청자 새로고침 - 이 요청은 박동처럼 10 초마다 전송됩니다. 이 빈도는 현재 하드코딩되어 있지만, 앞으로 코드 변경 없이 사용자가 설정할 수 있도록 될 확률이 높습니다. 시청자가 오랜 기간 (아마 1 분 이상) 이 요청을 전송하는 데 실패하면, 시청자는 아마도 예기치 못하게 접속이 끊겼을 확률이 높으니 접속을 끊는 것이 좋을 것입니다. "final=true" 버전이 전송되면, 사용자는 이것이 최종 박동임을, 사용자가 리플레이 시청을 중지했음을 나타냅니다.

문법

<Server URL>replay/<Session Name>/viewer/<Viewer Name>
<Server URL>replay/<Session Name>/viewer/<Viewer Name>?final=<Final Heartbeat>

디테일

항목

Request Method

POST

Content Type

None

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Final Heartbeat

"true" 또는 "false" 입니다.

기본적으로 Final Heartbeat 가 true 이지 않으면 "final" 이 전송되지는 않습니다. true 면 시청자가 시청을 중지한 것이고, 데이터가 더이상 전송되지 않을 것입니다.

검색 요청

Search Replays

리플레이 검색 - 리플레이 서버가 전송할 수 있는 모든 리플레이 목록을 요청합니다. 이 리플레이는 URL 의 사용자 범주에 따라 미리 필터링된 것으로 기대됩니다. 리플레이 서버는 필터 칸 일부가 비어 있거나 없는 것을 처리할 수 있을 것입니다.

문법

<Server URL>replay?app=<Replay Version AppString>&cl=<Replay CL>&version=<Replay Network Version>&meta=<Meta Tag>&user=<User Name>&recent=<In Recent Viewer>"

디테일

항목

Request Method

GET

Content Type

None

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Replay Version AppString

플레이중인 게임을 설명하는 사용자 정의 스트링입니다.

이 값은 사용자가 리플레이 업로드를 시작한 때 전송되었으며, 지금은 잠재적 시청자에게 전송되는 리플레이 목록 필터링에 사용되고 있습니다.

Replay CL

플레이중인 빌드의 ChangeList 번호입니다.

이 값은 리플레이 목록 필터링에 사용됩니다.

Replay Network Version

플레이중인 게임 버전을 설명하는 사용자 정의 스트링입니다.

이 값은 게임의 데이터 포맷이 리플레이에 영향을 끼치면서 그 변화를 반영할 것입니다. 리플레이 목록 필터링에도 사용됩니다.

Meta

이 리플레이에 적용되는 태그입니다.

사용자 적용 메타 태그는 특정 기능이 있는 게임을 필터링하는 데 사용할 수 있습니다. "all Capture The Flag matches" (모든 깃발뺏기 게임)에서부터 "games that went into double-overtime" (더블 오버타임에 들어간 게임)같은 것까지도 가능합니다.

User

고유 넷 ID (GUID) 입니다.

특정 플레이어가 포함되었는지에 따라 게임을 필터링하는 데 사용됩니다.

Recent

"true" 또는 "false" 입니다.

true 면 최근 업로드된 리플레이만 표시됩니다. "recent" 에 대한 정의는 리플레이 서버에 달려있습니다.

반응

JSON 포맷 스트링 형태의 내용으로 된 반응을 기대합니다.

이름

유형

내용

replays

Array

이 표의 다른 모든 칸을 이루는 요소가 들어있습니다.

AppName

String

리플레이가 업로드되었을 때 전송된 Replay Version AppString 입니다. 요청과 함께 전송한 파라미터에 일치해야 합니다.

SessionName

String

리플레이의 이름 (GUID) 입니다.

FriendlyName

String

리플레이가 업로드되었을 때 제공된 <Platform Friendly Name> 입니다.

Timestamp

DateTime

리플레이에 연관된 시간과 날짜 (이 게임이 플레이 시점) 입니다.

SizeInBytes

Integer

리플레이의 바이트 단위 총 크기입니다.

DemoTimeInMs

Integer

리플레이의 MS 단위 실행 길이입니다.

NumViewers

Integer

현재 이 리플레이를 시청중인 사용자 수입니다.

bIsLive

Boolean

리플레이의 게임이 아직 플레이중인 경우 true 입니다.

Changelist

Integer

이 리플레이를 녹화했을 때 게임을 실행시킨 엔진 ChangeList 입니다. 리플레이 업로드시 전송된 Replay CL 인수에 해당합니다. 요청과 함께 전송한 파라미터에 일치해야 합니다.

shouldKeep

Boolean

디버그 "shouldKeep" 요청이 이루어진 경우 true 입니다.

Search Replays by Event

이벤트로 리플레이 검색 - 서버에서 리플레이 목록에 대한 요청을 전송합니다. 이 리플레이는 네임드 Event Group 에 이벤트가 최소 하나 들어있는 것들만 포함하도록 필터가 미리 적용되어 있을 것으로 예상됩니다.

문법

<ServerURL>event?group=<Event Group>

디테일

항목

Request Method

GET

Content Type

None

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Event Group

이 이벤트가 들어있는 이벤트 그룹 이름입니다.

이벤트는 목록 필터링을 위해 그룹에 넣을 수 있으며, 스포츠 관련 타이틀에서 모든 페널티 관련 호출을 묶는 경우가 그렇습니다.

반응

서버에서의 리플레이 목록이 들어있는 JSON 포맷 스트링의 콘텐츠 포함 반응을 기대합니다.

이름

유형

내용

replays

Array

이 표의 다른 모든 칸을 이루는 요소가 들어있습니다.

AppName

String

리플레이가 업로드되었을 때 전송된 Replay Version AppString 입니다.

SessionName

String

리플레이의 이름 (GUID) 입니다.

FriendlyName

String

리플레이가 업로드되었을 때 제공된 <Platform Friendly Name> 입니다.

Timestamp

DateTime

리플레이에 연관된 시간과 날짜 (이 게임이 플레이 시점) 입니다.

SizeInBytes

Integer

리플레이의 바이트 단위 총 크기입니다.

DemoTimeInMs

Integer

리플레이의 MS 단위 실행 길이입니다.

NumViewers

Integer

현재 이 리플레이를 시청중인 사용자 수입니다.

bIsLive

Boolean

리플레이의 게임이 아직 플레이중인 경우 true 입니다.

Changelist

Integer

이 리플레이를 녹화했을 때 게임을 실행시킨 엔진 ChangeList 입니다. 리플레이 업로드시 전송된 Replay CL 인수에 해당합니다. 요청과 함께 전송한 파라미터에 일치해야 합니다.

shouldKeep

Boolean

디버그 "shouldKeep" 요청이 이루어진 경우 true 입니다.

Request Replay

DemoNetDriver 에서 바로 호출되어, 게임 프로젝트에서 언제든 수행할 수 있습니다. 하지만 보통 기존 요청에 의해 제공된 목록에서 받은 Event Name 이 있는 리플레이를 볼 때 호출될 것입니다.

문법

<Server URL>event/<Event Name>

디테일

항목

Request Method

GET

Content Type

None

파라미터

요소

용도 / 참고사항

Server URL

리플레이 서버 URL 입니다. DefaultEngine.Ini 에서 변경되지 않은 상태로 끌어옵니다.

URL 끝의 "/" 는 반드시 포함시켜야 합니다 - 자동으로 추가되지 않습니다.

Event Name

요청된 이벤트의 GUID 입니다.

이벤트는 GUID 로 식별하므로, 이벤트는 파일의 어느 리플레이에서도 올 수 있습니다. 요청한 이벤트가 현재 시청중인 리플레이에 관련된 이벤트 목록에서 온 것인지 확인하십시오.

반응

리플레이 서버로부터 바이너리 스트림으로 된 콘텐츠 포함 반응을 기대합니다.

태그
언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
취소