c# – 用于实时环境中的通信的WCF或套接字?

c# – 用于实时环境中的通信的WCF或套接字?,第1张

概述我有一个场景,我需要跨2个客户端发送一系列数据. 数据包括序列化XML,其中包含其他客户端需要响应的命令. 我还需要通过网络发送图像,因为我需要提供视频/音频聊天形式的聊天工具. 我想为两者提供单一的通信媒体,因为消息/命令的数量可能很少. WCF或套接字? WCF是用于构建面向服务的应用程序的API.我不认为视频/语音聊天就是这种应用. 首先,您需要为此类应用程序提供哪些传输功能?我对语音/视频 我有一个场景,我需要跨2个客户端发送一系列数据.

数据包括序列化XML,其中包含其他客户端需要响应的命令.

我还需要通过网络发送图像,因为我需要提供视频/音频聊天形式的聊天工具.

我想为两者提供单一的通信媒体,因为消息/命令的数量可能很少.

WCF或套接字?

解决方法 WCF是用于构建面向服务的应用程序的API.我不认为视频/语音聊天就是这种应用.

首先,您需要为此类应用程序提供哪些传输功能?我对语音/视频传输的了解非常差,但我希望:

>客户端连接聊天服务器,发送语音/视频数据,接收其他客户端语音/视频数据的双工通信.
>流式传输 – 数据量可能非常大,因此在您开始阅读数据时处理数据会很不错.此外,一些编码算法应该与流媒体一起使用.
>服务质量 – 控制可持续的传播速度. (如果你想进行会议视频聊天,你还需要协调多个流)

因此,通过简单描述这三个期望,我已经看到了问题. WCF内置Net.Tcp绑定does not allow duplex communication and streaming together.还要注意,通过WCF进行Net.TCP通信的性能要比普通的socket通信差很多.这是因为WCF简化了很多事情,但这些简化和概括减慢了处理速度.

同样基于所选算法this可能是个问题.

Here您可以在Silverlight 4中找到一些视频聊天的描述.Silverlight允许WCF和net.tcp绑定,但仍然在套接字上开发通信.

Here您可以找到广泛使用的IP语音协议的描述 – 用于数据传输的RTP和用于协调和QoS的RTCP.这些协议也用于视频传输.通过谷歌搜索我找到了implementation for .NET(我不知道实现有多好,我只是用Google …)

总结

以上是内存溢出为你收集整理的c# – 用于实时环境中的通信的WCF或套接字?全部内容,希望文章能够帮你解决c# – 用于实时环境中的通信的WCF或套接字?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1216498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存