-
Notifications
You must be signed in to change notification settings - Fork 265
metaRTC datachannel programming guide
yangrtc edited this page Dec 18, 2025
·
1 revision
In the include/yang_config.h file
//Set Yang_Enable_Datachannel to 1, the default is 1
#define Yang_Enable_Datachannel 1
enum{
YANG_DATA_CHANNEL_DCEP = 50,
YANG_DATA_CHANNEL_STRING = 51,
YANG_DATA_CHANNEL_BINARY = 53,
YANG_DATA_CHANNEL_STRING_EMPTY = 56,
YANG_DATA_CHANNEL_BINARY_EMPTY = 57
};
YangPeerConnection* rtcConn;
YangFrame frame;
char* str="datachannel test";
yang_memset(&frame,0,sizeof(YangFrame));
//Send text message YANG_DATA_CHANNEL_STRING
//Send binary message YANG_DATA_CHANNEL_BINARY
frame.mediaType=YANG_DATA_CHANNEL_STRING;
frame.payload=(uint8_t*)str;
frame.nb=strlen(str);
ret = rtcConn->on_message(&rtcConn->peer,msgFrame);`
typedef struct {
void* context;
void (*receiveAudio)(void* context,YangFrame *audioFrame);
void (*receiveVideo)(void* context,YangFrame *videoFrame);
//datachannel callback
void (*receiveMsg)(void* context,YangFrame *videoFrame);
}YangReceiveCallback;
// Callback function // Get msgFrame
void yang_receiveMsg(void* user,YangFrame *msgFrame){
int32_t msgSize;
uint8_t* msg;
if(user==NULL)
return;
if(msgFrame->mediaType==YANG_DATA_CHANNEL_STRING){
msg=msgFrame->payload;
//handle msg
}else if(msgFrame->mediaType==YANG_DATA_CHANNEL_BINARY){
msg=msgFrame->payload;
msgSize=msgFrame->nb;
//handle msg
}
}