Open
Description
Hello
I have a class
import 'dart:async';
import 'dart:html';
class MessagePortStreamChannel
with StreamChannelMixin<String>
implements StreamChannel<String> {
MessagePortStreamChannel({required this.port}) {
_onReceiveMessageSubscription = port.onMessage.listen((message) {
_in.add(message.data);
});
_onPostMessageSubscription = _out.stream.listen((event) {
port.postMessage(event);
});
}
final MessagePort port;
final _in = StreamController<String>(sync: true);
final _out = StreamController<String>(sync: true);
late final StreamSubscription<MessageEvent> _onReceiveMessageSubscription;
late final StreamSubscription<String> _onPostMessageSubscription;
Future<void> dispose() async {
await _onReceiveMessageSubscription.cancel();
await _onPostMessageSubscription.cancel();
await _in.close();
await _out.close();
}
@override
StreamSink<String> get sink => _out.sink;
@override
Stream<String> get stream => _in.stream;
}
When i use import 'package:web/web.dart';
, onMessage
method isn't defined for the type 'MessagePort'. but in the class we have external EventHandler get onmessage;
i don't understand something to migrate my class to web package.
thx