Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: README.md

Issue 1780583002: Use web_socket_channel in the README. (Closed) Base URL: git@github.com:dart-lang/json_rpc_2.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 A library that implements the [JSON-RPC 2.0 spec][spec]. 1 A library that implements the [JSON-RPC 2.0 spec][spec].
2 2
3 [spec]: http://www.jsonrpc.org/specification 3 [spec]: http://www.jsonrpc.org/specification
4 4
5 ## Server 5 ## Server
6 6
7 A JSON-RPC 2.0 server exposes a set of methods that can be called by clients. 7 A JSON-RPC 2.0 server exposes a set of methods that can be called by clients.
8 These methods can be registered using `Server.registerMethod`: 8 These methods can be registered using `Server.registerMethod`:
9 9
10 ```dart 10 ```dart
11 import "package:json_rpc_2/json_rpc_2.dart" as json_rpc; 11 import "package:json_rpc_2/json_rpc_2.dart" as json_rpc;
12 import "package:stream_channel/stream_channel.dart"; 12 import "package:stream_channel/stream_channel.dart";
13 import "package:web_socket_channel/io.dart";
13 14
14 main() async { 15 main() async {
15 var socket = await WebSocket.connect('ws://localhost:4321'); 16 var socket = IOWebSocketChannel.connect('ws://localhost:4321');
16 var server = new json_rpc.Server(new StreamChannel(socket, socket)); 17 var server = new json_rpc.Server(socket);
17 18
18 // Any string may be used as a method name. JSON-RPC 2.0 methods are 19 // Any string may be used as a method name. JSON-RPC 2.0 methods are
19 // case-sensitive. 20 // case-sensitive.
20 var i = 0; 21 var i = 0;
21 server.registerMethod("count", () { 22 server.registerMethod("count", () {
22 // Just return the value to be sent as a response to the client. This can 23 // Just return the value to be sent as a response to the client. This can
23 // be anything JSON-serializable, or a Future that completes to something 24 // be anything JSON-serializable, or a Future that completes to something
24 // JSON-serializable. 25 // JSON-serializable.
25 return i++; 26 return i++;
26 }); 27 });
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 75
75 ## Client 76 ## Client
76 77
77 A JSON-RPC 2.0 client calls methods on a server and handles the server's 78 A JSON-RPC 2.0 client calls methods on a server and handles the server's
78 responses to those method calls. These methods can be called using 79 responses to those method calls. These methods can be called using
79 `Client.sendRequest`: 80 `Client.sendRequest`:
80 81
81 ```dart 82 ```dart
82 import "package:json_rpc_2/json_rpc_2.dart" as json_rpc; 83 import "package:json_rpc_2/json_rpc_2.dart" as json_rpc;
83 import "package:stream_channel/stream_channel.dart"; 84 import "package:stream_channel/stream_channel.dart";
85 import "package:web_socket_channel/html.dart";
84 86
85 main() async { 87 main() async {
86 var socket = await WebSocket.connect('ws://localhost:4321'); 88 var socket = HtmlWebSocketChannel.connect('ws://localhost:4321');
87 var client = new json_rpc.Client(new StreamChannel(socket, socket)); 89 var client = new json_rpc.Client(socket);
88 90
89 // This calls the "count" method on the server. A Future is returned that 91 // This calls the "count" method on the server. A Future is returned that
90 // will complete to the value contained in the server's response. 92 // will complete to the value contained in the server's response.
91 client.sendRequest("count").then((result) => print("Count is $result.")); 93 client.sendRequest("count").then((result) => print("Count is $result."));
92 94
93 // Parameters are passed as a simple Map or, for positional parameters, an 95 // Parameters are passed as a simple Map or, for positional parameters, an
94 // Iterable. Make sure they're JSON-serializable! 96 // Iterable. Make sure they're JSON-serializable!
95 client.sendRequest("echo", {"message": "hello"}) 97 client.sendRequest("echo", {"message": "hello"})
96 .then((echo) => print('Echo says "$echo"!')); 98 .then((echo) => print('Echo says "$echo"!'));
97 99
(...skipping 16 matching lines...) Expand all
114 ``` 116 ```
115 117
116 ## Peer 118 ## Peer
117 119
118 Although JSON-RPC 2.0 only explicitly describes clients and servers, it also 120 Although JSON-RPC 2.0 only explicitly describes clients and servers, it also
119 mentions that two-way communication can be supported by making each endpoint 121 mentions that two-way communication can be supported by making each endpoint
120 both a client and a server. This package supports this directly using the `Peer` 122 both a client and a server. This package supports this directly using the `Peer`
121 class, which implements both `Client` and `Server`. It supports the same methods 123 class, which implements both `Client` and `Server`. It supports the same methods
122 as those classes, and automatically makes sure that every message from the other 124 as those classes, and automatically makes sure that every message from the other
123 endpoint is routed and handled correctly. 125 endpoint is routed and handled correctly.
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698