필드 설명 | 유형/길이 | 값 정의/비고 |
cVer | unsigned char(1) | 버전 번호, 입력값: 1 |
wOpenIDLen | unsigned short(2) | 사용자 계정 길이 |
strOpenID | string | 사용자 계정 문자수 |
dwSdkAppid | unsigned short(4) | 개발자 SDKappid |
dwReserved1 | unsigned int(4) | 입력값: 0 |
dwExpTime | unsigned int(4) | 만료 시각(현재시간+유효기간[단위: 초, 권장값 300 초]) |
dwReserved2 | unsigned int(4) | 입력값: -1 또는 0xFFFFFFFF |
dwReserved3 | unsigned int(4) | 입력값: 0 |
wRoomIDLen | unsigned short(2) | 사용자가 입장하고자 하는 방 ID의 길이. 오프라인 음성의 경우 0을 입력하십시오. |
strRoomID | wRoomIDLen | 사용자가 입장하고자 하는 방 ID의 문자수 |
방안 | 장점 | 단점 |
백엔드 배포 | 보안성 높음 | 백엔드 개발자 공동 테스트 필요 |
클라이언트 배포 | 빠른 통합 | 보안성 낮음 |
unsigned char pInBuf[512]={0};xel::byte_writer bw(pInBuf, sizeof(pInBuf));char cVer = 1;unsigned short wOpenIDLen = (unsigned short)strlen((const char *)strOpenID);if (wOpenIDLen > 127) wOpenIDLen = 127;unsigned short wRoomIDLen = (unsigned short)strlen((const char *)strRoomID);if (wRoomIDLen > 127) wRoomIDLen = 127;bw.write_byte(cVer);bw.write_int16(wOpenIDLen);bw.write_bytes(strOpenID, wOpenIDLen);bw.write_int32(dwSdkAppId);bw.write_int32(0 /*dwRoomID*/);bw.write_int32(expTime);bw.write_int32(nAuthBits);bw.write_int32(0 /*dwAccountType*/);bw.write_int16(wRoomIDLen);bw.write_bytes(strRoomID, wRoomIDLen);int pInLen = bw.bytes_write();unsigned char pEncryptOutBuf[512] = { 0 };int iEncrptyLen = 0;symmetry_encrypt((const unsigned char*)pInBuf, pInLen, (const unsigned char*)key, (unsigned char*)pEncryptOutBuf, &iEncrptyLen);
문제 해결에 도움이 되었나요?