@@ -3,7 +3,7 @@ import AgoraRTM, {
3
3
createLazyClient ,
4
4
createLazyChannel ,
5
5
RtmEvents ,
6
- RtmRawMessage
6
+ RtmMessage
7
7
} from 'agora-rtm-react'
8
8
import PropsContext from './PropsContext'
9
9
import {
@@ -90,7 +90,6 @@ const RtmConfigure = (props: any) => {
90
90
}
91
91
92
92
const joinChannel = async ( ) => {
93
- await rtcUid
94
93
try {
95
94
await channel . join ( )
96
95
timerValueRef . current = 5
@@ -134,11 +133,11 @@ const RtmConfigure = (props: any) => {
134
133
} )
135
134
136
135
rtmClient . on ( 'MessageFromPeer' , ( message , peerId ) => {
137
- handleReceivedMessage ( message as RtmRawMessage , peerId )
136
+ handleReceivedMessage ( message , peerId )
138
137
} )
139
138
140
139
channel . on ( 'ChannelMessage' , ( message , peerId ) => {
141
- handleReceivedMessage ( message as RtmRawMessage , peerId )
140
+ handleReceivedMessage ( message , peerId )
142
141
} )
143
142
144
143
channel . on ( 'MemberJoined' , async ( peerId ) => {
@@ -230,31 +229,39 @@ const RtmConfigure = (props: any) => {
230
229
}
231
230
}
232
231
233
- const handleReceivedMessage = ( message : RtmRawMessage , peerId : string ) => {
234
- const payload = ( message as RtmRawMessage ) . rawMessage
235
- const messageObject : messageObject = parsePayload ( payload )
232
+ const handleReceivedMessage = ( message : RtmMessage , peerId : string ) => {
233
+ let messageObject : messageObject | undefined
234
+ if ( message . messageType === 'RAW' ) {
235
+ messageObject = parsePayload ( message . rawMessage )
236
+ } else if ( message . messageType === 'TEXT' ) {
237
+ messageObject = JSON . parse ( message . text )
238
+ }
236
239
console . log ( messageObject , peerId )
237
- switch ( messageObject . messageType ) {
238
- case 'UserData' :
239
- handleReceivedUserDataMessage ( messageObject )
240
- break
241
- case 'MuteRequest' :
242
- handleReceivedMuteMessage ( messageObject )
243
- break
244
- case 'RtmDataRequest' :
245
- switch ( messageObject . type ) {
246
- case 'ping' :
247
- handlePing ( peerId )
248
- break
249
- case 'userData' :
250
- handleUserDataRequest ( peerId )
251
- break
252
- default :
253
- console . log ( peerId )
254
- }
255
- break
256
- default :
257
- console . log ( 'unknown message type' )
240
+ if ( messageObject ) {
241
+ switch ( messageObject . messageType ) {
242
+ case 'UserData' :
243
+ handleReceivedUserDataMessage ( messageObject )
244
+ break
245
+ case 'MuteRequest' :
246
+ handleReceivedMuteMessage ( messageObject )
247
+ break
248
+ case 'RtmDataRequest' :
249
+ switch ( messageObject . type ) {
250
+ case 'ping' :
251
+ handlePing ( peerId )
252
+ break
253
+ case 'userData' :
254
+ handleUserDataRequest ( peerId )
255
+ break
256
+ default :
257
+ console . log ( peerId )
258
+ }
259
+ break
260
+ default :
261
+ console . log ( 'unknown message content' )
262
+ }
263
+ } else {
264
+ console . log ( 'unknown rtm message type' )
258
265
}
259
266
}
260
267
@@ -303,23 +310,19 @@ const RtmConfigure = (props: any) => {
303
310
}
304
311
305
312
const sendChannelMessage = async ( payload : messageObject ) => {
306
- const rawMessage = createRawMessage ( payload )
307
313
const message = rtmClient . createMessage ( {
308
- rawMessage : rawMessage ,
309
- messageType : AgoraRTM . MessageType . RAW ,
310
- description : 'AgoraUIKit'
314
+ text : JSON . stringify ( payload ) ,
315
+ messageType : AgoraRTM . MessageType . TEXT
311
316
} )
312
317
await channel . sendMessage ( message )
313
318
}
314
319
315
320
const sendPeerMessage = async ( payload : messageObject , peerId : string ) => {
316
- const rawMessage = createRawMessage ( payload )
317
321
const message = rtmClient . createMessage ( {
318
- rawMessage : rawMessage ,
319
- messageType : AgoraRTM . MessageType . RAW ,
320
- description : 'AgoraUIKit'
322
+ text : JSON . stringify ( payload ) ,
323
+ messageType : AgoraRTM . MessageType . TEXT
321
324
} )
322
- await rtmClient . sendMessageToPeer ( message , peerId )
325
+ await rtmClient . sendMessageToPeer ( message , String ( peerId ) )
323
326
}
324
327
325
328
const end = async ( ) => {
0 commit comments