.net – 客户端 – 服务器通信协议的体系结构决策

这个问题实际上非常通用,但我真的很难找到一个好的答案或如何完成它的例子.

我们正在编写一个简单的多用户协作Web浏览应用程序,我们在确定用于通信协议的内容时遇到了一些问题.
我们正在Mono的C#中开发,希望最终能够跨平台.

通信可能包括以下消息:在会话中注册为用户(客户端到服务器),通知客户端连接的新用户(服务器到客户端),请求页面加载(客户端到服务器)等.
到目前为止我们的想法是:

>基本Message类扩展的XmlSerialization

我们一直在尝试,但是在使用XmlSerialization机制作为及时传递数据的方法时遇到了麻烦,所以我们怀疑它是一种正确的方法来做到这一点

>在同一情况下的二进制序列化

由于数据的形式,我不喜欢这种情况,因为我担心风险会更高.

> Google Protocol Buffers
> WCF

两者听起来都比应该使用的更接近,但我们担心这样一个非常简单的协议会有点过分.

还有可能是我错过的其他人.

这样做有什么好干净的方法?

最佳答案 WCF – 为您提供一个平台.

然后使用JSON和REST作为实际的API(可以在WCF中使用的选项).这样你基本上可以“本地”在javascript中工作.

WCF是一个很好的工具(遗憾的是,单声道大多数可能太多了 – 不确定),包括为您的服务器端接口动态生成JavaScript代理.

点赞