# Core features Chat is is designed to support in-session text communication. Zoom truncates messages exceeding a binary size of 10,000 bytes. As a best practice, we recommend a limit of 1000 characters per message. While in a session, users can send chat messages to each other. Two main components implement in-session messaging. - An instance of `IZoomVideoSDKChatHelper` provides the methods for sending messages. - The `onChatNewMessageNotify` callback on your `IZoomVideoSDKDelegate` delivers incoming messages and confirms your own messages were sent. To read message metadata, delete messages, and apply host chat privileges, see [Manage chat messages](/docs/video-sdk/windows/chat/chat-message-details/). To transfer files, see [Send files in chat](/docs/video-sdk/windows/chat/send-files-in-chat/). ## Get the chat helper Get the chat helper with `getChatHelper`. ```cpp IZoomVideoSDKChatHelper* pChatHelper = m_pVideoSDK->getChatHelper(); ``` ## Send a public message To send a message to everyone in the session, call `sendChatToAll`. Check that chat is enabled first with `isChatDisabled`. ```cpp IZoomVideoSDKChatHelper* pChatHelper = m_pVideoSDK->getChatHelper(); if (pChatHelper->isChatDisabled() == false) { // Send a message to all users in the session. pChatHelper->sendChatToAll(strMessage); } ``` ## Send a private message To send a message to a single user, call `sendChatToUser` with the recipient's `IZoomVideoSDKUser`. Private chat can be disabled separately from chat as a whole, so check both `isChatDisabled` and `isPrivateChatDisabled`. ```cpp IZoomVideoSDKChatHelper* pChatHelper = m_pVideoSDK->getChatHelper(); if (pChatHelper->isChatDisabled() == false && pChatHelper->isPrivateChatDisabled() == false) { // Send a message to a single user. pChatHelper->sendChatToUser(pUser, strMessage); } ``` ## Receive incoming messages To be notified when a message arrives, implement `onChatNewMessageNotify` on your `IZoomVideoSDKDelegate`. The `messageItem` parameter carries the message content and the `IZoomVideoSDKUser` for both the sender and the recipient. ```cpp void CExampleListener::onChatNewMessageNotify(IZoomVideoSDKChatHelper* pChatHelper, IZoomVideoSDKChatMessage* messageItem) { if (!messageItem) return; const zchar_t* content = messageItem->getContent(); IZoomVideoSDKUser* pSendingUser = messageItem->getSendUser(); IZoomVideoSDKUser* pReceivingUser = messageItem->getReceiveUser(); } ``` For more information on using the `IZoomVideoSDKUser` object, see [Sessions](/docs/video-sdk/windows/sessions/).