在 JSON RPC 请求和响应之间实现通知
Posted
技术标签:
【中文标题】在 JSON RPC 请求和响应之间实现通知【英文标题】:Implementing notifications in between JSON RPC request and response 【发布时间】:2015-04-09 12:20:14 【问题描述】:根据规范,JSON-RPC 允许 3 种不同的消息,即请求、响应和通知,其中为每个请求提供响应。
那么是否可以在响应和请求之间实现通知?
--> data sent to service
<-- data coming from service
--> "method": "startCalculation", "params": [2015], "id": 1 // asynchronous
<-- "method": "updateProgress", "params": ["10"], "id": null // 10% done
<-- "method": "updateProgress", "params": ["50"], "id": null // 50% done
<-- "method": "updateProgress", "params": ["100"], "id": null // 100% done
<-- "result": 123456, "error": null, "id": 1 // result of startCalculation
如果可能的话,我可以使用哪些可用的模式或模型在 .Net 4.0 中实现这一点?
【问题讨论】:
根据规范,“通知是没有“id”成员的请求对象。作为通知的请求对象表示客户端对相应的响应对象缺乏兴趣,因此没有需要将响应对象返回给客户端。”所以在你的例子中,你的通知走错了路。似乎通知是从客户端到服务器的。 【参考方案1】:这将脱离规范。
响应表示为单个 JSON 对象
来源:http://www.jsonrpc.org/specification#response_object
【讨论】:
以上是关于在 JSON RPC 请求和响应之间实现通知的主要内容,如果未能解决你的问题,请参考以下文章
在 Rails 控制器中,即使使用 json 响应也设置通知
对长时间运行的通知通道使用 ServerStreaming rpc 调用