在 WCF 中实现 JSON-RPC

Posted

技术标签:

【中文标题】在 WCF 中实现 JSON-RPC【英文标题】:Implement JSON-RPC in WCF 【发布时间】:2013-07-31 07:17:47 【问题描述】:

我一直在四处寻找,但没有找到解决方案。我想用 WCF 实现一个 JSON-RPC 服务器。我找到了这个http://jsonrpc2.codeplex.com/,但它不使用 WCF,我知道如何集成它。有人可以告诉我如何将所有内容放在一起吗?

谢谢

编辑:我已经发布了我的源代码 here

服务器端的一个非常基本的实现现在正在工作,至少使用 HTTP GET 请求。我现在正在尝试为它实现一个 WCF 客户端,但我再次陷入困境:(我将在上面发布一个单独的问题。

【问题讨论】:

【参考方案1】:

我已经写了一些博客,它们确切地展示了如何做到这一点 - 请参阅http://blogs.msdn.com/b/carlosfigueira/archive/2011/12/08/wcf-extensibility-transport-channels-request-channels-part-1.aspx 上的第一个(其中有指向其他人的链接)。

基本上,您需要创建一个能够理解协议的传输通道。在该传输中,您需要将输入/输出转换为 WCF Message 对象(WCF 堆栈的基本块)。而且您需要将消息传递到堆栈的其余部分。您还需要编写一个操作选择器来将传入的 RPC 消息映射到将被调用的服务中的操作。

另一种选择是在 HTTP 之上编写 JSON-RPC;在这种情况下,您应该使用一组消息格式化程序(分解参数)、操作选择器和可能的消息检查器来代替传输通道,以用于请求/回复关联。

【讨论】:

感谢您的回答 Carlos.. 我想这对我来说不是那么微不足道的任务。只是关于你的文章的一个小问题。我看到它主要涵盖客户端,在第 3 部分的末尾有一个“让我们转到服务器端”,但我真的不明白从哪里开始。第 3 部分所附的源代码可以作为一个好的起点吗?提前致谢, 服务器端部分在blogs.msdn.com/b/carlosfigueira/archive/2012/01/04/…。 您好 carlos,我已经开始在 HTTP 堆栈之上开发自己的操作选择器。我已使用端点行为将其应用于我的服务。现在我想开始调试我的 SelectOperation 方法是一个步骤。我试图从这样的网络浏览器调用该方法:192.168.15.117/jsonrpc?request="jsonrpc": "2.0", "id": 1, "method": "Playlist.GetPlaylists" 但该方法没有得到叫.. 我已经发布了我的代码social.msdn.microsoft.com/Forums/vstudio/en-US/… 嗨卡洛斯,我正在尝试完成客户端部分,你能帮我解决这个问题吗?提前致谢。 ***.com/questions/18408272/…

以上是关于在 WCF 中实现 JSON-RPC的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WCF 服务中实现自定义身份验证

如何在 WCF Web 服务中实现策略?

如何在 RESTful WCF API 中实现 HMAC 身份验证

如何在 C# 中实现线程关联?

json-rpc 参数版本 1.0 vs 2.0

今天在 .NET 中实现 RESTful 架构的最佳方式是啥? [关闭]