Content sent in Command Channel delivered in "chat-on-message" event encoded as Base64

Description
Hi, in our web application, we are using the ChatClient to send text messages between the users, and the CommandChannel to send some types of events and actions (ex.: user is typing).

As described in the docs, we are listening to the event “chat-on-message” to handle messages sent in the chat using the ChatClient and add it to the chat area, and listening to the event “command-channel-message” to handle actions and reactions sent in the Command Channel using the command channel client.

In the tests, our QA team noted that in some cases, after performing an action that sends data in the command channel, a base64 encoded string is delivered in the chat, and in other tests, the team sent 10 messages in chat and 1 was not delivered (maybe was delivered as command channel message).

Is there any way we can check the session event history by the session ID?

Session ID: dKTtMCMRSoOAm5459vG1SQ==

Browser Console Error
No error was presented in the console for this issue.

Which Web Video SDK version?
1.12.0

Device (please complete the following information):

  • Device 1 (receive the chat and commands)

  • Device: Iphone 11

  • OS: iOS 17.5.1

  • Browser: Safari

  • Device 2 (send the chat and commands)

  • Device: Windows Laptop

  • OS: Windows 11

  • Browser: Chrome

  • Browser version: 127.0.6533.99

Hey @marcos.costa

Thanks for your feedback.

Chat and Command Channel operate on different socket channels at the underlying level, so they don’t interfere with each other.

Since messages are not persisted, if the receiver hasn’t joined the session when the sender sends the message, there is a possibility that the message might be lost.

Thanks
Vic

Hi @vic.yang ,

Thanks for your help.

I understand that both sides need have joined the session to receive messages.
The odd case is that the receiver was in the session, were sent 10 messages, and only messages 1 and 3-10 were delivered, the target didn’t get the message number 2.

About the command channel, I’m sure we are always sending the content using the CommandChannel client, but sometimes the target receives the command message as a chat message in the “chat-on-message” event and base64 encoded.

I’m trying to get more logs about this one to try to understand it.

Hey @marcos.costa

I’d like to understand the frequency at which you are sending messages. If it’s too high, the messages might get dropped.

For Command Channel, the maximum size is 512 characters and the rate limit is 35 commands per second.

Thanks
Vic

Hi Vic,

Just a little update on this issue.

We have identified the scenario and added some logs to the console to when the application receive any event related to connection changes, chat messages and command channel messages.

In this case, the user open other apps and keep the chrome browser open in the background. After a while, the SDK loses connection to the session and start the failover process, trying to reconnect.

11:09:15.943 live-chat-detail.page.ts:462 Status of connection with Zoom session has changed. Object reason: "failover"state: “Reconnecting”[[Prototype]]: Object

After that, an odd message is received in the command channel:

11:09:15.965 live-chat-detail.page.ts:421 Message delivered in zoom command-channel-message: Objectmsgid: "16631706463422347113520056152768698303"senderGuid: undefined senderId: undefined senderName: “Promoter” text: "\f\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0001\u0000\u0000 PF J\u000b |ea \u0012\u0012 v \u001e ,ƺLnM r9 K .qg J \u0006 ] \u0013\u001c m f\u0012 wA$= T رM\u0004 M8ɔ #) J UI \u000f\u001bNT" .5` _: E \u0015 n +Id ~\u0012j\b3 |}\u0010 \u0005- &NEN ,\tξ\u0002 q d6 \u0016 | Od\u000e\u001d 6 <u +[ p\u0018 G g o\u0012vAe ᲍C$ | q3 O iS~ ‘\u001c Z >~6TXQCX!\n 1 h z Ēt!\u0005 \u0004 \u000e\u0007 \u0012\u001a @ \u001d \u0001* ¡ } pv Y R̞ » N 1 o /zߺ\u0002 o \u0014X q \u0005 # l\u001fJ \f Y r \u0011P$ o \u001c\f R \u0012r 6 pgHQ E\u001d ^\u00029 u, sL߆5’ - f GՁ ) %\u0001W3Ѫ +2s\u0004 5b uL\u0012"timestamp: 1724422155965[[Prototype]]: Object

And then, the user starts to receive Base64 encoded messages in the chat:

11:09:15.995 live-chat-detail.page.ts:403 Message delivered in zoom chat-on-message: Object: message: “eyJldmVudCI6InR5cGluZy1zdGFydCIsImV2ZW50VHlwZSI6InVuaWNhc3QifQ==” receiver: name: ""userId: 0[[Prototype]]: Object sender: avatar: ""name: "Promoter"userId: 0[[Prototype]]: Object timestamp: 1724422155995

11:09:15.999 live-chat-detail.page.ts:403 Message delivered in zoom chat-on-message: Objectmessage: “eyJldmVudCI6InR5cGluZy1lbmQiLCJldmVudFR5cGUiOiJ1bmljYXN0In0=” receiver: name: ""userId: 0[[Prototype]]: Object sender: avatar: ""name: "Promoter"userId: 0[[Prototype]]: Object timestamp: 1724422155999

11:09:16.004 live-chat-detail.page.ts:403 Message delivered in zoom chat-on-message: Objectmessage: “eyJldmVudCI6InR5cGluZy1zdGFydCIsImV2ZW50VHlwZSI6InVuaWNhc3QifQ==” receiver: {name: ‘’, userId: 0} sender: {name: ‘Promoter’, userId: 0, avatar: ‘’} timestamp: 1724422156004

We’ll try to filter these messages by the “receiver” and “sender” ids and then avoid to present in the chat.

Hey @marcos.costa

Thanks for your detailed information.

Could you record the network in the browser dev tool and share the HAR file with us for troubleshooting?

Thanks
Vic