I’m integrating RTMS real-time meeting transcripts into a Spring Boot (Java) application. I’m attempting to connect to the RTMS signaling WebSocket, but the connection closes immediately after I send the handshake request.
It looks like the issue may be related to my signature generation or the handshake payload, and I’d appreciate help reviewing them.
Problem symptoms:
I open the RTMS signaling WebSocket.
I generate the signature and send the handshake message.
As soon as the handshake is sent, the WebSocket connection gets closed by the server.
No additional error message is returned by Zoom, just status_code = 1000 and reason - Normal close.
What I need help with:
Verifying whether my signature generation is correct.
Confirming if the handshake message structure matches Zoom’s RTMS documentation.
To enable RTMS, reach out to your account team. If you don’t have an existing account team contact, fill out this form to reach out to our team and get started with RTMS.
To add RTMS to your app, you need to add the corresponding RTMS scopes to your app. For more information, see Add RTMS features to your app
I’m generating the signature exactly as documented and using the same request structure described in the Zoom RTMS documentation. Still, the connection closes right away after opening.
What could be causing this abrupt connection closure with only a generic “Normal close” (code 1000) and no further explanation? Has anyone encountered this behavior or knows what stop_reason = 11 indicates?
@Vatsal From the error code, it is highly likely there might be a mismatch in the signature.
Here’s a sample of what I’ve generated. It would be helpful to use these test values to test public String generateZoomSignature(String meetingUuid, String streamId)
@chunsiong.zoom@amanda-recallai I ran into an issue where the signature generation was correct, but the documentation only provides Python and Node examples. In those examples, the media socket message comes but no type specified. And previously I was expecting it as text in my Java implementation, but it arrives in binary form - something the docs don’t cover.
I also have a question about RTMS:
Is it possible to use RTMS with a Server-to-Server OAuth app? When I tried, I wasn’t able to add RTMS scopes to a server-to-server OAuth app, but it did work with a general app.