41 lines
1.1 KiB
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,
|
|
}));
|
|
}
|