数据包括序列化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或套接字?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)