Hos*_*ani 5 javascript node.js grpc grpc-node
我正在使用 nodejs grpc 服务器流将实时数据从服务器传送到客户端。当客户端想要监听数据时,他们应该调用返回服务器流的服务器函数。然后,如果客户端想要结束监听,我想它应该调用调用对象上的 end 方法。但不幸的是,我在文档中找不到有关如何执行此操作的任何线索。我尝试过 call.end 、 call.destroy 和 call.cancel 但 end 和 destroy 什么也没做,并且 cancel 抛出以下错误。示例客户端代码如下:
function getData(token, userId) {
const data = {
token,
userId
}
let call = DataService.getData(data)
call.on('data', res => {
console.log(res)
})
call.on('status', console.log);
call.on('error', console.log);
setTimeout(() => {
console.log('destroy')
call.cancel()
}, 5000)
}
Run Code Online (Sandbox Code Playgroud)
错误是:
Error: 1 CANCELLED: Cancelled on client
at Object.callErrorFromStatus (...grpc\node_modules\@grpc\grpc-js\build\src\call.js:31:26)
at Object.onReceiveStatus (...grpc\node_modules\@grpc\grpc-js\build\src\client.js:330:49)
at Object.onReceiveStatus (...grpc\node_modules\@grpc\grpc-js\build\src\client-interceptors.js:299:181)
at ...grpc\node_modules\@grpc\grpc-js\build\src\call-stream.js:145:78
at processTicksAndRejections (internal/process/task_queues.js:75:11) {
code: 1,
details: 'Cancelled on client',
metadata: Metadata { internalRepr: Map(0) {}, options: {} }
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1240 次 |
最近记录: |