t_server 2.1.0 copy "t_server: ^2.1.0" to clipboard
t_server: ^2.1.0 copied to clipboard

TServer package for dart core lib and is support http,websocket

example/lib/main.dart

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:t_server/t_server.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> with TServerListener {
  @override
  void initState() {
    TServer.instance.addListener(this);
    super.initState();
    init();
  }

  @override
  void dispose() {
    TServer.instance.stop(force: true);
    TServer.instance.removeListener(this);
    super.dispose();
  }

  void init() async {
    TServer.instance.startListen(port: 8080);

    TServer.instance.get('/', (req) {
      req.sendHtml('<h1>Hello TServer</h1>');
    });
    TServer.instance.get('/text', (req) {
      req.sendText('Hello TServer text');
    });
    TServer.instance.get('/json', (req) {
      req.sendJson(jsonEncode({'res': 'hello TServer json result'}));
    });
    TServer.instance.get('/download', (req) {
      // download/?path=[path]
      final path = req.getQueryParameters['path'] ?? '';
      req.sendFile(path);
    });
    TServer.instance.get('/stream', (req) {
      // download/?path=[path]
      final path = req.getQueryParameters['path'] ?? '';
      req.sendVideoStream(path);
    });
    // post method
    TServer.instance.post('/post', (req) async {
      final body = await req.getBody();
      debugPrint(body.toString());
    });
    TServer.instance.put('/put', (req) async {
      final body = await req.getBody();
      debugPrint(body.toString());
    });
    TServer.instance.delete('/delete', (req) async {
      // delete?id=[id]
      final id = req.getQueryParameters['id'] ?? '';
      debugPrint(id);
    });

    TServer.instance.onSocketListen((req, socket) {
      // client connected
      debugPrint('client connected');
      socket.listen(
        (data) {
          // client send data
          debugPrint('client message: [$data]');
        },
        onDone: () {
          // client leave
          debugPrint('client leave');
        },
      );
    });

    /*
    final formData = FormData.fromMap({
          'file': await MultipartFile.fromFile(path, filename: path.getName()),
        });
        await dio.post(
          "${widget.hostUrl}/upload",
          data: formData,
          options: Options(
            contentType: 'multipart/form-data',
            sendTimeout: Duration(
              hours: 1,
            ), // 2GB ဆိုတာကြောင့် timeout ကြီးကြီးထား
            receiveTimeout: Duration(hours: 1),
          ),
          onSendProgress: (sent, total) {
          },
          */
    // client file upload
    TServer.instance.post('/upload', (req) {
      req.uploadFile('save dir path');
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Plugin example app')),
        body: Placeholder(),
        floatingActionButton: FloatingActionButton(
          onPressed: () {
            TServer.instance.stop();
          },
        ),
      ),
    );
  }

  @override
  void onServerStatusChanged(bool isServerRunning) {
    print('isServerRunning: $isServerRunning');
  }
}
0
likes
0
points
66
downloads

Publisher

unverified uploader

Weekly Downloads

TServer package for dart core lib and is support http,websocket

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, mime, plugin_platform_interface

More

Packages that depend on t_server