Flutter服务器交互插件quds_server的使用
Flutter服务器交互插件quds_server的使用
安装
方法一:克隆一个现成的项目基础
您可以直接克隆一个已经准备好的项目基础:
https://github.com/MohammedAsaadAsaad/quds_server_base
方法二:通过Dart创建项目并导入quds_server
在您的pubspec.yaml
文件中添加以下依赖:
获取最新版本
quds_server:
git:
url: https://github.com/MohammedAsaadAsaad/quds_server.git
ref: master
或者使用稳定版本
quds_server: ^1.0.0+3
如何使用?
您可以查看./example
目录下的示例代码以了解如何使用该插件。
示例代码
以下是一个完整的示例代码,展示了如何使用quds_server
插件来创建一个简单的服务器。
文件路径
example/quds_server_example.dart
示例代码
import 'dart:math'; // 引入随机数库
import 'package:quds_server/quds_server.dart'; // 导入quds_server核心库
import 'package:web_socket_channel/web_socket_channel.dart'; // 导入WebSocket通道库
// import 'cli_commands/some_command.dart'; // 如果有命令行命令,可以导入
import 'example_router.dart'; // 自定义路由文件
late QudsServer server;
void main() {
// 初始化服务器
server = QudsServer(
// cliCommands: [SomeCommand()], // 如果有命令行命令,可以启用
appName: 'Example App', // 设置应用名称
configurations: ServerConfigurations(
// securityContext: SecurityContext.defaultContext, // 可选的安全上下文
port: 2028, // HTTP端口
webSocketPort: 2211, // WebSocket端口
enableAuthorization: false, // 是否启用授权
secretKey: 'asadl-ad3234-1312-1232ed-asd'), // 秘钥
validateUserWebSocket: validateUserSockets, // 验证WebSocket用户的方法
routers: [ExampleRouter()] // 自定义路由
);
// 启动服务器
server.start();
// 自定义JSON编码器
serverDefaultJsonEncoder = encodeJson;
}
// 验证WebSocket用户的函数
Future<int?> validateUserSockets(
WebSocketChannel ws, Map<String, String> headers) async {
// 模拟用户验证逻辑(此处返回随机用户ID)
return Random().nextInt(1000); // 返回0到999之间的随机整数
}
// 自定义JSON编码器
Object? encodeJson(Object? obj) {
// 如果对象是DateTime类型,则将其转换为字符串
if (obj is DateTime) return obj.toString();
// 其他对象保持不变
return obj;
}
示例说明
1. 初始化服务器
server = QudsServer(
appName: 'Example App',
configurations: ServerConfigurations(
port: 2028,
webSocketPort: 2211,
enableAuthorization: false,
secretKey: 'your-secret-key',
),
validateUserWebSocket: validateUserSockets,
routers: [ExampleRouter()],
);
appName
: 设置服务器的应用名称。configurations
: 配置服务器的基本参数,如端口号、WebSocket端口号、是否启用授权等。validateUserWebSocket
: 自定义的WebSocket用户验证方法。routers
: 注册自定义路由。
2. 启动服务器
server.start();
调用start()
方法启动服务器。
3. 自定义JSON编码器
serverDefaultJsonEncoder = encodeJson;
1 回复