일반 사항
JSON(JavaScript Object Notation)은 데이터 교환에 이용되는 경량 형식으로, JavaScript 언어의 일부를 기반으로 합니다. 즉, 개체가 JavaScript에서 빌드됩니다.
JSON(JavaScript Object Notation)은 데이터 교환에 이용되는 경량 형식으로, JavaScript 언어의 일부를 기반으로 합니다. 즉, 개체가 JavaScript에서 빌드됩니다.
JSON은 두 가지 구조를 기반으로 구축되었습니다.
다음은 JSON 데이터의 예입니다.
{
"firstName": "John",
"lastName": "Smith",
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": 10021
},
"phoneNumbers": [
"212 555-1234",
"646 555-4567"
]
}
JSON은 JSON RPC(REST 기반)를 사용하여 E2, S3-4K 및 EX와 같은 이벤트 마스터 프로세서와 상호 작용합니다. JSON-RPC는 JSON에 인코딩된 원격 프로시저 호출 프로토콜입니다.
JSON-RPC는 이 프로토콜을 구현하는 서버로 요청을 보내는 방식으로 작동합니다. 이 경우 클라이언트는 일반적으로 원격 시스템의 단일 메서드를 호출하는 소프트웨어입니다. 다중 입력 매개 변수를 배열 또는 개체로 원격 메서드에 전달할 수 있지만 메서드 자체는 여러 출력 데이터를 반환할 수도 있습니다.
이벤트 마스터 프로세서에서 작업을 수행하도록 정의된 JSON RPC가 있습니다. 사용자는 응용 프로그램 또는 오픈 소스 응용 프로그램을 통해 JSON 요청을 보내야 합니다.
이러한 응용 프로그램은 이벤트 마스터 프로세서가 실행 중인 IP와 고정 포트 9999(이벤트 마스터 프로세서의 웹 서버가 포트 9999에서 실행되고 있음)에서 요청을 보내야 합니다.
웹 응용 프로그램에서 JSON API를 사용하려면 메뉴 탐색 표시줄에서 설정 아이콘을 선택하고 웹 앱 대시보드에서 JSONRPC API를 선택합니다.

다음은 이벤트 마스터 프로세서를 제어하기 위해 정의된 몇 가지 JSON API입니다. 마스터/슬레이브 이벤트 마스터 설정이 있는 경우, JSON을 마스터 장치로 전송해야 합니다. 모든 요청에 대해 이 섹션에서는 RPC 호출에 전달되거나 사용되는 매개 변수를 설명합니다. params 개체가 비어 있으면 API에 매개 변수가 필요하지 않음을 의미합니다.
allTrans
정의:
요청:
{} - 매개 변수가 필요하지 않습니다.응답:
예:
{"params":{}, "method":"allTrans",
"id":"1234", "jsonrpc":"2.0"}cut
정의:
요청:
{} - 매개 변수가 필요하지 않습니다.응답:
예:
{"params":{}, "method":"cut",
"id":"1234", "jsonrpc":"2.0"}resetFrameSettings
정의:
요청:
매개 변수: {"reset":x},
"x"는 0 – 5일 수 있습니다
응답:
예:
{"params":{"reset": 0}, "method":"resetFrameSettings",
"id":"1234", "jsonrpc":"2.0"}powerStatus
정의:
요청:
{} - 매개 변수가 필요하지 않습니다.응답:
응답: {FrameId1 :{ PwrStatus1, PwrStatus2},{FrameId2
:{ PwrStatus1, PwrStatus2}
PwrStatus1은 프레임 ID FrameId1, FrameId2를 사용하여 이벤트 마스터 프로세서에서 첫 번째 슬롯의 전원 상태를 제공합니다.
PwrStatus2는 프레임 ID FrameId1, FrameId2를 사용하여 이벤트 마스터 프로세서에서 두 번째 슬롯의 전원 상태를 제공합니다.
예:
{"params":{}, "method":"powerStatus",
"id":"1234", "jsonrpc":"2.0"}listPresets
정의:
요청:
매개 변수: {"ScreenDest":x , "AuxDest":x},
"x"에는 다음이 가능합니다.
응답:
응답: 배열: [{"id": 0, "Name":
"Preset3.00", "LockMode": 0, "presetSno":
3.00}, {"id": 1, "Name": "Preset4.00",
"LockMode": 0, "presetSno": 4.00}]
예:
{"params":{"ScreenDest": 0}, "method":"listPresets",
"id":"1234", "jsonrpc":"2.0"}listDestinationsForPreset
정의:
요청:
매개 변수: {"id":x },
"x"에는 다음이 가능합니다.
응답:
응답: 배열: [{"id": 0, "Name":
"Preset3.00", "LockMode": 0, "presetSno":
3.00, "ScreenDest":[{"id": 0}, {"id":
3}],"AuxDest":[{"id": 0},
{"id": 1}]}]
예:
{ "params":{"id": 0}, "method":"listDestinationsForPreset",
"id":"1234",
"jsonrpc":"2.0"}
savePreset
정의:
요청:
매개 변수: {"presetName": "NewPreset",
"ScreenDestination":[{"id": 2}, {"id":
3}],
"AuxDestination":[{"id": 1}, {"id":
2}]}
응답:
예:
{"params": {"presetName": "NewPreset"},
"method":"savePreset", "id":"1234",
"jsonrpc":"2.0"}
{"params": {"presetName": "NewPreset",
"ScreenDestination":
{"id": 0},"AuxDestination":{"id":
0}}, "method":"savePreset", "id":"1234",
"jsonrpc":"2.0"}
이름 바꾸기, 활성화 및 삭제에 대해 동일한 사전 설정과 관련된 핵심 사항:
"presetSno"—사전 설정의 일련 번호입니다. 필요한 경우 사용자가 부동 소수점 숫자를 제공할 수 있습니다. 예: "presetSno": 1.01, "presetSno": 1.00, "presetSno": 1, "presetSno": 1.1, "presetSno": 1.10.
1.1과 1.10 또는 1.00과 1은 동일합니다.
renamePreset
정의:
요청 매개 변수:
{"id": x, "newPresetName":
"NewPresetName"}{"presetSno": x.y, "newPresetName":
"NewPresetName"}매개 변수: {"presetName": "OldPresetName",
"newPresetName": "NewPresetName"}
응답:
예:
{"params": {"id": 0, "newPresetName": " newPresetName "},
"method":"renamePreset", "id":"1234",
"jsonrpc":"2.0"}
{"params": {"presetName": "NewPreset", "newPresetName": "NewPresetName"},
"method":"renamePreset", "id":"1234",
"jsonrpc":"2.0"}
{"params": {"presetSno": 1.00, "newPresetName": " newPresetName "},
"method":"renamePreset", "id":"1234",
"jsonrpc":"2.0"}
activatePreset
정의:
요청 매개 변수:
{"id": x, "type": x}{"presetSno": x.y, "type":
x}매개 변수: {"presetName": "PresetName"}
"type"—미리 보기에서 호출하려면 0(기본값), 프로그램에서 호출하려면 1입니다.
이것은 필수 매개 변수는 아니지만 사용자가 프로그램에서 사전 설정을 호출하려는 경우 지정해야 합니다.
응답:
예:
{"params": {"id": 0, "type":
0}, "method":"activatePreset",
"id":"1234", "jsonrpc":"2.0"}
//Recall in preview with id 0.
{"params": {"presetName": "abc"
}, "method":"activatePreset",
"id":"1234", "jsonrpc":"2.0"}
//Recall in preview with preset name "abc".
{"params": {"presetSno": 1.00, "type":
1}, "method":"activatePreset",
"id":"1234", "jsonrpc":"2.0"}
//Recall in program with presetSno 1.
recallNextPreset
정의:
이벤트 마스터 프로세서에서 다음 사전 설정을 호출합니다.
매개 변수가 필요하지 않습니다.
요청:
{}응답:
예:
{"params": {}, "method":"recallNextPreset",
"id":"1234", "jsonrpc":"2.0"}deletePreset
정의:
이벤트 마스터 프로세서에서 사전 설정을 삭제합니다.
사용자는 ID, 사전 설정 일련 번호 또는 사전 설정 이름과 함께 사전 설정을 삭제할 수 있습니다.
요청:
{"id": x}{"presetSno": x.y}{"presetName": "PresetName"}응답:
예:
{"params": {"id": 1}, "method":"deletePreset",
"id":"1234", "jsonrpc":"2.0"}{"params": {"presetSno": 1.00}, "method":"deletePreset",
"id":"1234", "jsonrpc":"2.0"}{"params": {"presetName": "Preset
5.00"}, "method":"deletePreset",
"id":"1234", "jsonrpc":"2.0"}
listDestinations
정의:
요청:
매개 변수: {"type": x}
0—모든 대상을 표시합니다.
형식 매개 변수의 기본값은 0입니다.
응답:
응답: 배열: {"ScreenDestination":[{"id":
0, "Name": "Dest1", "HSize": 3840,
"VSize": 1080, "Layers": 1,"DestOutMapColl":[{"id":
0"DestOutMap":[{"id":
0, "Name": "Out1", "HPos":
0, "VPos": 0, "HSize": 1920, "VSize":1080,
"Freeze": 0},{"id": 1, "Name":
"Out2", "HPos": 1920, "VPos": 0,
"HSize": 1920, "VSize":1080, "Freeze":
1}]}]}],"AuxDestination":
[{"id": 0, "AuxStreamMode": 4}, {"id":
1, "AuxStreamMode": 4}]}"
예:
{"params": {"type": 0}, "method":"listDestinations",
"id":"1234", "jsonrpc":"2.0"}listSources
정의:
요청:
매개 변수: {"type": x}
0—모든 입력 소스를 표시합니다.
형식 매개 변수의 기본값은 0입니다.
응답:
응답: 배열: {"id": 0, "Name":
"InSource1", "HSize": 3840, "VSize":
1080,
"SrcType": 0, "InputCfgIndex": -1,
"StillIndex": 0, "DestIndex": -1,
"UserKeyIndex": -1, "Mode3D": 0, "Freeze":
1, "Capacity": 2,
"InputCfgVideoStatus": 4}
SRC 유형: 0 = 입력, 1 = StillStore
InputCfgVideoStatus: 입력 비디오 상태
예:
{"params": {"type": 0}, "method":"listSources",
"id":"1234", "jsonrpc":"2.0"}listContent
정의:
요청:
매개 변수: {"id": x}
응답:
응답: { "id": 0, "Name": "ScreenDest1""BGLyr":[{"id":
0, "LastBGSourceIndex":
0, "BGShowMatte":0, "BGColor":[{"id":0,
"Red":0, "Green":0, "Blue":0}]},
{"id": 1, "LastBGSourceIndex": 0,
"BGShowMatte":0, "BGColor":[{"id":0,
"Red":0, "Green":0, "Blue":0}]}],(0
= PGM Background, 1 = PVW Background)
"Layers":[{"id": 0, "LastSrcIdx":
0, "HPos": 0, "VPos": 0, "HSize": 400,
"VSize": 300, "PvwMode": 0, "PgmMode":
0, "Freeze": 0, "FlexZOrder":
0,"LayerTrans":[{"id": 0, "TransTime":
30, "TransPos": 0}, {"id": 1,
"TransTime": 30, "TransPos": 0}]
, "3D": "Yes", "Freeze": 0, "Capacity":
2}]}]}
BGLyr—배경 계층 인덱스, 배경의 마지막 소스 인덱스입니다.
"id":0은 프로그램의 배경에 영향을 줍니다. "id":1은 미리 보기의 배경에 영향을 줍니다.
예:
{"params": {"id": 0}, "method":"listContent",
"id":"1234", "jsonrpc":"2.0"}activateCue
정의:
요청:
매개 변수: {"id": 1, "type": x}, "method":"activateCue",
"id":"1234", "jsonrpc":"2.0"}
{"cueName": "Cue1", "type":
x}, "method":"activateCue", "id":"1234",
"jsonrpc":"2.0"}{"cueSerialNo": 1.00, "type":
x}, "method":"activateCue", "id":"1234",
"jsonrpc":"2.0"}응답:
예:
{"params": {"id": 1}, "method":"activateCue",
"id":"1234", "jsonrpc":"2.0"}
//Play – no parame or type 0{"params": {"type": 1}, "method":"activateCue",
"id":"1234", "jsonrpc":"2.0"}
//Pause – type 1{"params": {"type": 2}, "method":"activateCue",
"id":"1234", "jsonrpc":"2.0"}
//Stop – type 2activateDestGroup
정의:
요청:
{"id": x}{"destGrpSno": x.y}{"destGrName": "GroupName"}응답:
예:
{"params": {"id": 0}, "method":"activateDestGroup",
"id":"1234", "jsonrpc":"2.0"}{"params": {"destGrpName": "abc"
}, "method":"activateDestGroup", "id":"1234",
"jsonrpc":"2.0"}{"params": {"destGrpSno": 1.00}, "method":"activateDestGroup",
"id":"1234", "jsonrpc":"2.0"}listCues
정의:
요청:
{}, "method":"listCues", "id":"1234",
"jsonrpc":"2.0"}응답:
예:
{"params": {}, "method":"listCues",
"id":"1234", "jsonrpc":"2.0"}3dControl
정의:
요청:
매개 변수: {"id" : id, "type": x, "syncSource":
y, "syncInvert": z}
응답:
응답: {"id": 0, "Name": "InSource1",
"HSize": 3840, "VSize": 1080,
"Src-Type": 0, "InputCfgIndex": -1,
"StillIndex": 0, "DestIndex": -1,
"UserKeyIndex": -1, "Mode3D": 0,
"Freeze": 1, "Capacity": 2,
"InputCfgVideoStatus": 4}
예:
{"params": {"id": 1, "type":
0, "syncSource": 1, "syncInvert": 0},
"method":"3dControl", "id":"1234",
"jsonrpc":"2.0"}
changeContent
정의:
요청:
매개 변수: {"id":0,"BGLyr":[{"id":0,"LastBGSourceIndex":0,"BGShowMatte":0,
"BGColor":[{"id":0,"Red":0,"Green":0,"Blue":0}]},{"id":1,
"LastBGSourceIndex":0,"BGShowMatte":0,"BGColor":
[{"id":0,"Red":0,"Green":0,"Blue":0}]}],"Layers":
[{"id":0,"LastSrcIdx":0,"Window":{"HPos":0,"VPos":0,"HSize":400,"VSize":300},
"Source":{"HPos":0,"VPos":0,"HSize":1920,"VSize":1080},
"Mask":
{ "Left":0.01, "Right":10.1, "Top":0.0,"Bottom":0.0},"PvwMode":1,"PgmMode":0,
"Freeze":0,"PgmZOrder":0,"PvwZOrder":0}]}
BGLyr—배경 계층 인덱스, 배경의 마지막 소스 인덱스입니다.
"id":0은 프로그램의 배경에 영향을 줍니다. "id":1은 미리 보기의 배경에 영향을 줍니다.
응답:
예:
{"params":{"id":0,"BGLyr":[{"id":0,"LastBGSourceIndex":0,"BGShowMatte":0,
"BGColor":[{"id":0,"Red":0,"Green":0,"Blue":0}]},{"id":1,
"LastBGSourceIndex":0,"BGShowMatte":0,"BGColor":[{"id":0,"Red":0,
"Green":0,"Blue":0}]}],"Layers":[{"id":0,"LastSrcIdx":0,
"Window":{"HPos":0,"VPos":0,"HSize":400,"VSize":300},
"Source":{"HPos":0,"VPos":0,"HSize":1920,"VSize":1080},
"Mask":{ "Left":0.01, "Right":10.1,
"Top":0.0,"Bottom":0.0},
"PvwMode":1,"PgmMode":0,"Freeze":0,"PgmZOrder":0,"PvwZOrder":0}]},
"method":"changeContent", "id":"1234",
"jsonrpc":"2.0"}.
{"params":{"id":0, "TestPattern"
:5 }, "method":"changeContent", "id":"1234",
"jsonrpc":"2.0"}freezeDestSource
정의:
요청:
매개 변수: {"type": x, "id": y, "screengroup":
z ,"mode": 0/1}
type—소스 유형
응답:
예:
{"params": {"type": 0, "id":
0, "screengroup": 0 ,"mode": 1},
"method":"freezeDestSource", "id":"1234",
"jsonrpc":"2.0"}
listStill
정의:
요청:
{}응답:
응답: 배열: [{"id":0,"Name":"StillStore1",
"LockMode":0,"HSize":{"Min":0,"Max":99999,"$t":1920},"VSize":{"Min":0,
"Max":99999,"$t":1080},"StillState":{"Min":0,"Max":4,"$t":3},"PngState":
{"Min":0,"Max":2,"$t":0},"FileSize":{"Min":0,"Max":100000,"$t":9331.2}}]
예:
{"params": {}, "method":"listStill",
"id":"1234", "jsonrpc":"2.0"}deleteStill
정의:
요청:
매개 변수: {"id": x}
응답:
예:
{"params":{"id": 0}, "method":"deleteStill",
"id":"1234", "jsonrpc":"2.0"}takeStill
정의:
요청:
매개 변수: { "type": x, "id": y, "file":
z}
응답:
예:
{"params":{"type":0 , "id":
1, "file": 5}, "method":"takeStill",
"id":"1234",
"jsonrpc":"2.0"}
getFrameSettings
정의:
요청:
{}응답:
{"System":{"id":0,"Name":"System1","FrameCollection":{"id":0,"Frame":
{"id":"00:0c:29:0e:86:d4","Name":"E2","Contact":"","Version":"4.2.30738",
"OSVersion":"NA","FrameType":0,"FrameTypeName":"E2","Enet":{"DhcpMode":0,
"DhcpModeName":"Static","IP":"10.98.0.165","StaticIP":"192.168.000.175",
"MacAddress":"00:0c:29:0e:86:d4","StaticMask":"255.255.255.000",
"StaticGateway":"192.168.000.001"},"SysCard":{"SlotState":2,
"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":80,
"CardTypeLabel":"System","CardID":0},"Slot":[{"Card":{"CardStatusID":2,
"CardStatusLabel":"Ready","CardTypeID":70,"CardTypeLabel":"Expansion",
"CardID":"thisissometextforid0"}},{"Card":{"CardStatusID":2,"CardStatusLabel":
"Ready","CardTypeID":70,"CardTypeLabel":"Expansion","CardID":
"thisissometextforid1"}},{"Card":{"CardStatusID":0,"CardStatusLabel":
"Not Installed","CardTypeID":255,"CardTypeLabel":"Unknown","CardID":
"Undefined"}},{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready",
"CardTypeID":1,"CardTypeLabel":"SDI
Input","CardID":"thisissometextforid211"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":3,"CardID":
"thisissometextforid2"}},{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready",
"CardTypeID":0,"CardTypeLabel":"DVI
Input","CardID":"thisissometextforid4"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":2,
"CardTypeLabel":"HDMI/DP Input","CardID":"thisissometextforid5"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":2,
"CardTypeLabel":"HDMI/DP Input","CardID":"thisissometextforid7"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":2,
"CardTypeLabel":"HDMI/DP Input","CardID":"thisissometextforid8"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":2,
"CardTypeLabel":"HDMI/DP Input","CardID":"thisissometextforid9"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":22,
"CardTypeLabel":"HDMI Output","CardID":"CardID3"}},{"Card":{"CardStatusID":2,
"CardStatusLabel":"Ready","CardTypeID":22,"CardTypeLabel":"HDMI
Output",
"CardID":"CardID4"}},{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready",
"CardTypeID":21,"CardTypeLabel":"SDI
Output","CardID":"CardID415"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":40,
"CardTypeLabel":"MVR","CardID":"CardID15"}},{"Card":{"CardStatusID":2,
"CardStatusLabel":"Ready","CardTypeID":50,"CardTypeLabel":"VPU
Scaler",
"CardID":"thisissometextforid501"}},{"Card":{"CardStatusID":2,
"CardStatusLabel":"Ready","CardTypeID":50,"CardTypeLabel":"VPU
Scaler",
"CardID":"thisissometextforid502"}},{"Card":{"CardStatusID":2,
"CardStatusLabel":"Ready","CardTypeID":50,"CardTypeLabel":"VPU
Scaler",
"CardID":"thisissometextforid503"}},{"Card":{"CardStatusID":2,
"CardStatusLabel":"Ready","CardTypeID":50,"CardTypeLabel":"VPU
Scaler",
"CardID":"thisissometextforid504"}},{"Card":{"CardStatusID":0,
"CardStatusLabel":"Not Installed","CardTypeID":255,"CardTypeLabel":
"Unknown","CardID":"Undefined"}},{"Card":{"CardStatusID":2,"CardStatusLabel":
"Ready","CardTypeID":50,"CardTypeLabel":"VPU
Scaler","CardID":
"thisissometextforid505"}},{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready",
"CardTypeID":50,"CardTypeLabel":"VPU
Scaler","CardID":
"thisissometextforid506"}},{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready",
"CardTypeID":50,"CardTypeLabel":"VPU
Scaler","CardID":
"thisissometextforid507"}},{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready",
"CardTypeID":50,"CardTypeLabel":"VPU
Scaler","CardID":
"thisissometextforid508"}}]}}}}}
예:
{"params":{}, "method":"getFrameSettings",
"id":"1234", "jsonrpc":"2.0"}listAuxContent
정의:
요청:
매개 변수: {"id" : x}
응답:
응답: {"id":0,"Name":"AuxDest1","PvwLastSrcIndex":0,"PgmLastSrcIndex":0}
예:
{"params": {"id": 0}, "method":"listAuxContent",
"id":"1234", "jsonrpc":"2.0"}changeAuxContent
정의:
요청:
매개 변수: {"id":x , "Name": "AuxDest1"
, "PvwLastSrcIndex": y , "PgmLastSrcIndex": z}
응답:
예:
{"params": {"id":0 , "Name":
"AuxDest1" , "PvwLastSrcIndex": 6 ,
"PgmLastSrcIndex": 1}, "method":"changeAuxContent",
"id":"1234", "jsonrpc":"2.0"}
{"params":{"id":0, "TestPattern"
:3 }, "method":"changeAuxContent", "id":"1234",
"jsonrpc":"2.0"}JSON 기반 응용 프로그램에서 구독을 수행하면 사용자가 구독한 변경 사항이 있을 때 응용 프로그램이 실행 중인 IP 포트로 알림이 전송됩니다.
실제 알림은 다음 구조를 가진 HTTP 게시물로 비동기적으로 전송됩니다: {result: {method:
"notification",notificationType: "ScreenDestChanged",change:
{ add: [2],
remove: [], update: [0, 1, 2] }}}.
변경 필드에는 추가/제거 또는 업데이트된 화면의 XmlId가 포함됩니다.
subscribe
정의:
요청:
매개 변수: {"hostname": hostname, "port":
port, "notification" : notificationType[]}
hostname—알림을 보낼 호스트 이름 또는 IP 주소입니다.
port—알림이 게시되는 TCP 포트입니다.
notificationTypes—사용자가 구독하려는 알림 배열입니다.
응답:
{"method": "subscribe"}예:
{"params": {"hostname" : "192.168.247.131",
"port": "3000", "notification" :
["ScreenDestChanged", "AUXDestChanged"]},
"method":"subscribe", "id":"1234",
"jsonrpc":"2.0"}
unsubscribe
정의:
요청:
매개 변수: {"hostname": hostname, "port":
port, "notification" : notificationType[]}
hostname—구독을 제거할 호스트 이름 또는 IP 주소입니다.
port—TCP 포트입니다.
notificationTypes—사용자가 구독하려는 알림 배열입니다.
응답:
{"method": "unsubscribe"}예:
{"params": {"hostname" : "192.168.247.131",
"port": "3000", "notification" :
["ScreenDestChanged", "AUXDestChanged"]},
"method":"unsubscribe",
"id":"1234", "jsonrpc":"2.0"}