fromJsonString static method
Converts a JSON string to a WebSocketMessage object.
Throws an UnknownMessageException if the message is not recognized.
Implementation
static WebSocketMessage fromJsonString(
String jsonString,
SerializationManager serializationManager,
) {
try {
Map data = jsonDecode(jsonString) as Map;
var messageType = data[WebSocketMessageKey.type];
var messageData = data[WebSocketMessageKey.data];
switch (messageType) {
case PingCommand._messageType:
return PingCommand();
case PongCommand._messageType:
return PongCommand();
case BadRequestMessage._messageType:
return BadRequestMessage(messageData);
case OpenMethodStreamCommand._messageType:
return OpenMethodStreamCommand(messageData);
case OpenMethodStreamResponse._messageType:
return OpenMethodStreamResponse(messageData);
case CloseMethodStreamCommand._messageType:
return CloseMethodStreamCommand(messageData);
case MethodStreamMessage._messageType:
return MethodStreamMessage(
messageData,
serializationManager,
);
case MethodStreamSerializableException._messageType:
return MethodStreamSerializableException(
messageData,
serializationManager,
);
}
throw UnknownMessageException(jsonString, error: 'Unknown message type');
} on UnknownMessageException {
rethrow;
} catch (e, stackTrace) {
throw UnknownMessageException(
jsonString,
error: e,
stackTrace: stackTrace,
);
}
}