We want to connect the people who have knowledge to the people who need it, to bring together people with different perspectives so they can understand each other better, and to empower everyone to share their knowledge.
final routerHandler = shelf_router.Router() ..get('/message', (request) => handleWs(request)); Cascade cascade = Cascade() .add(routerHandler) var handler = const Pipeline().addHandler(cascade.handler); await shelf_io.serve(handler, ipAddress, port)
FutureOr<Response> handleWs(Request request) { final channels = <WebSocketChannel>[]; return ws.webSocketHandler((WebSocketChannel channel) { channels.add(channel); channel.stream.listen((message) { try { final receivedMessage = Message.fromJson(json.decode(message)); final updatedMessage = receivedMessage.copyWith(messageState: MessageState.sent); final response = json.encode(updatedMessage.toJson()); for (final c in channels) { c.sink.add(response); } } catch (e) { debugPrint('Error while handling incoming message in socket: '); } }, onDone: () => channels.remove(channel) ); })(request); }
@override void initState() { super.initState(); _handleSocket(); } void _handleSocket() { _webSocketChannel = WebSocketChannel.connect(Uri.parse(endpoint)); _webSocketChannel.stream.listen((response) { print('response from ws: $response'); }); }
void _sendMessage() async { final data = json.encode(message.toJson()); _webSocketChannel.sink.add(data); }
webSocketHandler
2.2K Point(s)
1.2K Point(s)
313 Point(s)
178 Point(s)
138 Point(s)
Input your email to receive reset password link, or if you remember your password, you can click