https://stackoverflow.com/questions/52670255/flutter-json-rpc-2-implementation
import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:json_rpc_2/json_rpc_2.dart' as json_rpc; import 'package:web_socket_channel/io.dart'; class SymbolDetails extends StatelessWidget { final String symbolId; SymbolDetails({this.symbolId}); @override Widget build(BuildContext context) { var _api = IOWebSocketChannel.connect('wss://api.hitbtc.com/api/2/ws'); var client = json_rpc.Client(_api.cast()); client.sendNotification( 'subscribeTicker', {'symbol': '$symbolId'}, ); return Scaffold( appBar: AppBar( title: Text('$symbolId details'), ), body: StreamBuilder( stream: _api.stream, builder: (BuildContext context, AsyncSnapshot snapshot) { if (snapshot.connectionState == ConnectionState.none) { return Center( child: Text('Please check your internet connection'), ); } else if (!snapshot.hasData) { return Center(child: CircularProgressIndicator()); } String _snapshotData = snapshot.data; Map _response = json.decode(_snapshotData); return ListView( children: [ ListTile( title: Text('Ask price:'), trailing: Text( '${_response['params']['ask']}', style: TextStyle(fontWeight: FontWeight.bold), ), ), ListTile( title: Text('Bid price:'), trailing: Text( '${_response['params']['bid']}', style: TextStyle(fontWeight: FontWeight.bold), ), ), ], ); }, ), ); } }