# Keep alive response is not effective

**URL:** <https://devforum.zoom.us/t/keep-alive-response-is-not-effective/144543>\
**Category:** Realtime Media Streams\
**Created:** [July 2, 2026, 2:41am UTC](https://devforum.zoom.us/t/keep-alive-response-is-not-effective/144543 "2026-07-02T02:41:31Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![MinhCm](https://avatars.discourse-cdn.com/v4/letter/m/e19b73/32.png) [@MinhCm](https://devforum.zoom.us/u/MinhCm)\
**Post date:** [July 2, 2026, 2:41am UTC](https://devforum.zoom.us/t/keep-alive-response-is-not-effective/144543/1 "2026-07-02T02:41:31Z")

</div>

Hello  
Iam doing RTMS with ZCC, using raw websocket spec, no sdk

Iam successfully done all the signalling and media handshakes, also getting the audio as expected. However, the Keep-Alive does not work for me. After 5 keep-alive requests which are all responsed back, the server actively closed the connection

`Request:{"msg_type":12,"sequence":0,"timestamp":1782958602937}`  
`Response:{"msg_type":13,"timestamp":1782958602937}`  
`Request:{"msg_type":12,"sequence":1,"timestamp":1782958612938}`  
`Response:{"msg_type":13,"timestamp":1782958612938}`  
`Request:{"msg_type":12,"sequence":2,"timestamp":1782958622939}`  
`Response:{"msg_type":13,"timestamp":1782958622939}`  
`Request:{"msg_type":12,"sequence":3,"timestamp":1782958632947}`  
`Response:{"msg_type":13,"timestamp":1782958632947}`  
`Request:{"msg_type":12,"sequence":4,"timestamp":1782958642943}`  
`Response:{"msg_type":13,"timestamp":1782958642943}`

I do have extract the timestamp from request message for the response  
I also tried to extract “sequence” from the request and have it in the response, but did not help  
Please advise  
Thank you

---

<div class="post-metadata">

**Author:** ![chunsiong.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chunsiong.zoom/32/35488_2.png) [@chunsiong.zoom](https://devforum.zoom.us/u/chunsiong.zoom)\
**Post date:** [July 2, 2026, 3:19am UTC](https://devforum.zoom.us/t/keep-alive-response-is-not-effective/144543/2 "2026-07-02T03:19:06Z")

</div>

@MinhCm this looks ok, for the keep alive you need to respond to both signaling and media server.

If you are using raw websocket instead of SDK, you can take a look at some of the samples here

> **[GitHub - zoom/rtms-samples: RTMS sample apps](https://github.com/zoom/rtms-samples)**
>
> RTMS sample apps

in NodeJS, I’m doing something like this . Both of them do similar things, just that there is slight variations in programming style.

//media server

if (msg.msg\_type === 12) {  
mediaWs.send(JSON.stringify({  
msg\_type: 13,  
timestamp: msg.timestamp,  
}));  
}

//signaling server  
// Respond to keep-alive requests  
if (msg.msg\_type === 12) { // KEEP\_ALIVE\_REQ  
const keepAliveResponse = {  
msg\_type: 13, // KEEP\_ALIVE\_RESP  
timestamp: msg.timestamp,  
};  
console.log(‘Responding to Signaling KEEP\_ALIVE\_REQ:’, keepAliveResponse);  
ws.send(JSON.stringify(keepAliveResponse));  
}
