cyberhybridhub/server/lib/signalr/signalr_protocol.dart

41 lines
1.1 KiB
Dart

import 'dart:convert';
import 'text_message_format.dart';
/// Writes ASP.NET Core SignalR JSON hub messages.
class SignalrProtocol {
static String handshakeRequest() =>
TextMessageFormat.write(jsonEncode(<String, dynamic>{
'protocol': 'json',
'version': 1,
}));
static String handshakeResponse({String? error}) =>
TextMessageFormat.write(jsonEncode(<String, dynamic>{
if (error != null) 'error': error,
}));
static String invocation({
required String target,
required List<Object?> arguments,
String? invocationId,
}) {
return TextMessageFormat.write(jsonEncode(<String, dynamic>{
'type': 1,
'target': target,
'arguments': arguments,
if (invocationId != null) 'invocationId': invocationId,
}));
}
static String ping() => TextMessageFormat.write(jsonEncode(<String, dynamic>{
'type': 6,
}));
static String close({String? error}) =>
TextMessageFormat.write(jsonEncode(<String, dynamic>{
'type': 7,
if (error != null) 'error': error,
}));
}