Flutter性能监控插件keiser_metrics_connection的使用
Flutter性能监控插件keiser_metrics_connection的使用
该包的目的是为了方便地连接到Keiser Metrics服务器。它不提供任何表示服务器路由/模型的接口。
如果您正在寻找包含所有服务器路由映射的便捷函数和模型的SDK,请参阅keiser_metrics_sdk。
注意 - 此包是keiser_metrics_sdk
的依赖项。
特性
-
Websocket
- 主要的服务器通信方法。
-
REST
- HTTP回退(如果未启用websocket)。
-
请求队列
- 在短时间内请求量超过一定数量时会开始排队请求。
-
请求重试
- 自动重试失败请求一定次数。
-
保持活动状态
- 认证后会自动发送
keep-alive
请求。
- 认证后会自动发送
-
基于事件
- 暴露几个流,让您跟踪以下信息:
- websocket连接状态
- 服务器状态
- 认证状态
- 暴露几个流,让您跟踪以下信息:
开始使用
安装
在pubspec.yaml
文件中添加以下依赖:
dart pub add keiser_metrics_connection
或者
flutter pub add keiser_metrics_connection
导入
在Dart文件中导入包:
import 'package:keiser_metrics_connection/keiser_metrics_connection.dart';
使用
以下是一个完整的示例,展示了如何使用keiser_metrics_connection
插件来连接到Keiser Metrics服务器并监听状态变化:
import 'package:keiser_metrics_connection/keiser_metrics_connection.dart';
bool _isAuthenticated = false;
bool _isConnected = false;
bool _isServerOnline = false;
void main() {
final connection = MetricsConnection(
restEndpoint: 'http://192.168.208.191:8080/api',
socketEndpoint: 'ws://192.168.208.191:8080/ws',
requestRetryLimit: 1,
socketTimeout: Duration(seconds: 5),
);
// 监听服务器状态变化
connection.onServerStatusChange.listen((event) {
_isServerOnline = event == ServerState.online;
_printStatus();
});
// 监听websocket连接状态变化
connection.onConnectionStatusChange.listen((event) {
_isConnected = event == ConnectionState.connected;
_printStatus();
});
// 监听认证状态变化
connection.onAuthenticationStatusChange.listen((event) {
_isAuthenticated = event == AuthenticationState.authenticated;
_printStatus();
});
// 打开连接
connection.open();
}
// 打印当前状态
void _printStatus() {
print(_StatusEvent(
isAuthenticated: _isAuthenticated,
isConnected: _isConnected,
isOnline: _isServerOnline,
));
}
// 状态事件类
class _StatusEvent {
_StatusEvent({
required this.isAuthenticated,
required this.isConnected,
required this.isOnline,
});
final bool isAuthenticated;
final bool isConnected;
final bool isOnline;
@override
String toString() =>
'_StatusEvent(isAuthenticated: $isAuthenticated, isConnected: $isConnected, isOnline: $isOnline)';
}
额外信息
错误处理
当发生错误时,MetricsConnection
会抛出MetricsApiError
异常。该异常包含一些有用的信息,如错误代码、状态码、错误名称和错误消息。
class MetricsApiError implements Exception {
// ...
String? explanation;
int code; // 内部API代码
int status; // 标准服务器状态码(例如,200, 500等)
String name; // 例如:"TokenInvalid", "UnauthorizedResource"
String message;
// ...
}
状态事件
状态事件枚举用于描述不同状态:
enum ConnectionState { disconnected, connected } // websocket
enum ServerState { online, offline }
enum AuthenticationState { unauthenticated, authenticated, unknown }
更多关于Flutter性能监控插件keiser_metrics_connection的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复