You can debug the client/server events and commands in two ways:
Check out the client logs and server logs documentation to learn how to:
The client and server logs can help you debug many types of issues, including the event and command messages. By looking at the logs, you can make sure that the events and commands are being sent and received correctly.
You can also forward the server logs to the BrightScript console so that both the client and server logs appear on the same console.
The following diagram show the ping
event and command workflow.
Every 10 seconds, the server pings the client, and then the client pings the server.
This process verifies the TCP connection status between the client and server.
To find the right logs, you can check for specific text.
For events, you can look for specific text like Sending {"event":
for the client and CYIClientEventHandler
on the server.
[2021-10-07 02:38:57.894Z] Sending {"event":"ping"} over TCP connection
2021-10-06 21:38:57.588 rokuApp[53842:1003565] D/CYIClientEventHandler: Handling a ping from client
For commands, you can look for specific text like Sending command
for the server and processCommand
on the client.
2021-10-06 21:38:57.588 rokuApp[53842:1003565] I/ServerCommand: Sending command: (ping) at sequence: 105297801791.
[2021-10-07 02:38:57.939Z] processCommand: ping
Using the Cloud Recorder can be helpful, because it contains only event and command logs. This means that you don’t have to filter other types of logs as you do when checking the BrightScript Console and server logs. The Cloud Recorder also contains more details about the event and command messages, like event parameters and command arguments.
To learn how to enable the Cloud Recorder, review the server logs documentation.
The Cloud Recorder records all event and command messages and logs those messages to a JSON file.
You can find that file in the app root folder (<project>/recording<n>.json>
).
The <n>
filename suffix is a number that starts at zero when the client starts.
The number is incremented each time recording is enabled while the server is running.
For events, look for the >
character at the beginning of each line inside the recording
>31563:{"event":"ping"}
>31623:{"event":"response","params":{"loadstatus":"success"},"sequence":1271882630182,"success":true}
For commands, look for the <
character at the beginning of each line.
<31563:000000000000003b{"command":"ping","arguments":{},"sequence":1271882710118}
<31478:000000000000005d{"command":"waitSpinner","arguments":{"visible":true,"delay":2000},"sequence":1271882623736}