| Index: pkg/analysis_server/lib/src/channel.dart | 
| diff --git a/pkg/analysis_server/lib/src/channel.dart b/pkg/analysis_server/lib/src/channel.dart | 
| index 103c2b77acc39d9420ab98f31e89ac446fc8c9a2..859a393f5640987c28a02bdb1904168444d71240 100644 | 
| --- a/pkg/analysis_server/lib/src/channel.dart | 
| +++ b/pkg/analysis_server/lib/src/channel.dart | 
| @@ -29,6 +29,11 @@ abstract class CommunicationChannel { | 
| void sendNotification(Notification notification); | 
|  | 
| /** | 
| +   * Send the given [request] to the server. | 
| +   */ | 
| +  void sendRequest(Request request); | 
| + | 
| +  /** | 
| * Send the given [response] to the client. | 
| */ | 
| void sendResponse(Response response); | 
| @@ -44,6 +49,8 @@ class WebSocketChannel implements CommunicationChannel { | 
| */ | 
| final WebSocket socket; | 
|  | 
| +  final JsonEncoder jsonEncoder = const JsonEncoder(null); | 
| + | 
| /** | 
| * Initialize a newly create [WebSocket] wrapper to wrap the given [socket]. | 
| */ | 
| @@ -57,14 +64,17 @@ class WebSocketChannel implements CommunicationChannel { | 
|  | 
| @override | 
| void sendNotification(Notification notification) { | 
| -    JsonEncoder encoder = const JsonEncoder(null); | 
| -    socket.add(encoder.convert(notification.toJson())); | 
| +    socket.add(jsonEncoder.convert(notification.toJson())); | 
| +  } | 
| + | 
| +  @override | 
| +  void sendRequest(Request request) { | 
| +    socket.add(jsonEncoder.convert(request.toJson())); | 
| } | 
|  | 
| @override | 
| void sendResponse(Response response) { | 
| -    JsonEncoder encoder = const JsonEncoder(null); | 
| -    socket.add(encoder.convert(response.toJson())); | 
| +    socket.add(jsonEncoder.convert(response.toJson())); | 
| } | 
|  | 
| /** | 
|  |