README
内部包修改点
6.1.1-beta.4
- 跳过因为 header 内容不标准导致的异常
6.1.1-beta.3
- 废弃
browser/main
下导出的WebSocketMessageWriter
与WebSocketMessageReader
, 由 opensumi 自行维护 - 因依赖 TextEncoder 与 TextDecoder ,
src/index
内不再导出 browser 相关接口
6.1.0-beta.2
- 修复写入时 stream 可能已经被销毁的问题
6.1.0-beta.1
- fork 自 vscode-jsonrpc@6.1.0 版本
- 添加 src/index.ts 统一导出 API,官方版本在不同环境下使用不同入口,但在 opensumi 里引用时没有区分环境,导致直接使用官方版本会有部分 node 下加载了 browser 模块的情况
4.0.3
- 移动
@types/mocha
到devDependencies
4.0.2
- 兼容 ws 格式 reader
4.0.1
- 增加
WebSocketMessageWriter
与WebSocketMessageReader
支持 WebSocket 协议
4.0.0
- 增加
MessageConnection
暴露的方法isListening
、isClosed
、isDisposed
避免重复监听listen
连接
VSCode JSON RPC
This npm module implements the base messaging protocol spoken between a VSCode language server and a VSCode language client.
The npm module can also be used standalone to establish a JSON-RPC channel between a client and a server. Below an example how to setup a JSON-RPC connection. First the client side.
import * as cp from 'child_process';
import * as rpc from 'vscode-jsonrpc';
let childProcess = cp.spawn(...);
// Use stdin and stdout for communication:
let connection = rpc.createMessageConnection(
new rpc.StreamMessageReader(childProcess.stdout),
new rpc.StreamMessageWriter(childProcess.stdin));
let notification = new rpc.NotificationType<string, void>('testNotification');
connection.listen();
connection.sendNotification(notification, 'Hello World');
The server side looks very symmetrical:
import * as rpc from 'vscode-jsonrpc';
let connection = rpc.createMessageConnection(
new rpc.StreamMessageReader(process.stdin),
new rpc.StreamMessageWriter(process.stdout));
let notification = new rpc.NotificationType<string, void>('testNotification');
connection.onNotification(notification, (param: string) => {
console.log(param); // This prints Hello World
});
connection.listen();
History
4.0.0
- move JS target to ES6.
3.0.0:
- converted the NPM module to use TypeScript 2.0.3.
- added strict null support.
- support for passing more than one parameter to a request or notification.
- Breaking changes:
- due to the use of TypeScript 2.0.3 and differences in d.ts generation users of the new version need to move to TypeScript 2.0.3 as well.