flutter_msg_engine 0.0.1 copy "flutter_msg_engine: ^0.0.1" to clipboard
flutter_msg_engine: ^0.0.1 copied to clipboard

outdated

Flutter Message Engine..

example/lib/main.dart

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

import 'package:flutter/services.dart';
import 'package:flutter_msg_engine/flutter_msg_engine.dart';

void main() => runApp(new MyApp());

int SMsgId = 999;
int SMsgRef = 0;

// Use MsgProcessHandler process message.
class MyApp extends StatefulWidget implements MsgProcHandler<String> {

  @override
  _MyAppState createState() {
    MsgEngine.instance.register(this, 150);
    return new _MyAppState();
  }

  @override
  void processMsg(MsgPack<String> msg) {
    print("MyApp: " + msg.data);
  }
}

class _MyAppState extends State<MyApp> {

  @override
  void initState() {
    super.initState();
    // message start.
    MsgEngine.instance.start();
    // setting message log callback.
    MsgEngine.instance.onLog = ((MsgEngine engine, String text) {
      print(text);
    });
  }

  @override
  void dispose() {
    super.dispose();
    // stop message engine.
    MsgEngine.instance.stop();
  }

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      routes: <String, WidgetBuilder>{
        "/main": (BuildContext context) => new MyHomePage(),
      },
      home: new MyHomePage(title: "HomePage"),
    );
  }

  static _test() {
    MsgEngine.instance.regMsg(111, (MsgPack msg) {
      print(msg.toString());
    });
    MsgEngine.instance.regMsg(115, (MsgPack msg) {
      print("115: ${msg.toString()}");
    });

    MsgEngine.instance.regMsg(118, (MsgPack msg) {
      print("118: ${msg.data}");
    });

    print(MsgEngine().toString());
    MsgPack msg = const MsgBase(msgId: 123, sender: null);
    print("${msg.toString()}");

    MsgEngine.instance.sendMsgSync(const MsgTextBase(msgId: 111, text: "Hello MsgEngine."));
    MsgEngine.instance.sendMsg(const MsgTextBase(msgId: 112, text: "empty"));
    MsgEngine.instance.sendMsg(const MsgTextBase(msgId: 111, text: "Hello MsgEngine 2."));
    MsgEngine.instance.sendMsg(const MsgTextBase(msgId: 113, text: "..."));
    MsgEngine.instance.sendMsg(const MsgTextBase(msgId: 115, text: "Hello MsgEngine 3."));
    MsgEngine.instance.sendMsg(const MsgTextBase(msgId: 150, text: "message 150."));

    MsgEngine.instance.sendMsg(const MsgPackData<int>(msgId: 150, data: 150));
    MsgEngine.instance.sendMsg(const MsgPackData<int>(msgId: 118, data: 520));

    MsgEngine.instance.sendMsg(MsgPackData<String>(msgId: SMsgId - 1, data: "message id is $SMsgRef"));
    MsgEngine.instance.sendMsg(MsgPackData<String>(msgId: SMsgId, data: "message id is $SMsgRef"));

    SMsgRef++;
  }
}

class MyHomePage extends StatefulWidget {
  final String title;
  MyHomePage({Key key, this.title}) : super(key: key);

  @override
  createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> implements MsgProcHandler<String> {
  int _msgid;
  String _msg;

  @override
  void initState() {
    super.initState();
    _msgid = SMsgId;
    SMsgId++;
    MsgEngine.instance.register(this, _msgid);
  }

  @override
  void dispose() {
    super.dispose();
    MsgEngine.instance.unRegister(_msgid);
  }

  @override
  void processMsg(MsgPack<String> msg) {
    print(msg.data);
    setState(() {
      _msg = msg.data;
    });
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(title: new Text(widget.title ?? "New Page")),
      body: new Padding(padding: const EdgeInsets.all(8.0), child: new Wrap(
        direction: Axis.vertical,
        spacing: 8.0,
        children: <Widget>[
          new Text("msgId: $_msgid, Data: $_msg"),
          new FlatButton(onPressed: () {
            _MyAppState._test();
          }, color: Colors.blue, splashColor: Colors.yellow, child: new Text("Test MsgEngine")),
          new MaterialButton(onPressed: () {
            Navigator.pushNamed(context, "/main");
            new Timer(const Duration(milliseconds: 1000), () {
              MsgEngine.instance.sendMsg(MsgPackData<String>(msgId: _msgid, data: "start new page."));
            });
          }, color: Colors.grey, child: new Text("Open New Page"))
        ],
      )),
    );
  }
}
0
likes
0
pub points
0%
popularity

Publisher

unverified uploader

Flutter Message Engine..

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on flutter_msg_engine