in src/SignalingClient.ts [238:263]
private onMessage(event: MessageEvent): void {
let parsedEventData: WebSocketMessage;
let parsedMessagePayload: object;
try {
parsedEventData = JSON.parse(event.data) as WebSocketMessage;
parsedMessagePayload = SignalingClient.parseJSONObjectFromBase64String(parsedEventData.messagePayload);
} catch (e) {
// For forwards compatibility we ignore messages that are not able to be parsed.
// TODO: Consider how to make it easier for users to be aware of dropped messages.
return;
}
const { messageType, senderClientId } = parsedEventData;
switch (messageType) {
case MessageType.SDP_OFFER:
this.emit('sdpOffer', parsedMessagePayload, senderClientId);
this.emitPendingIceCandidates(senderClientId);
return;
case MessageType.SDP_ANSWER:
this.emit('sdpAnswer', parsedMessagePayload, senderClientId);
this.emitPendingIceCandidates(senderClientId);
return;
case MessageType.ICE_CANDIDATE:
this.emitOrQueueIceCandidate(parsedMessagePayload, senderClientId);
return;
}
}