使用GZipStream客户端/服务器异步通信
本文关键字:服务器 异步通信 客户端 GZipStream 使用 | 更新日期: 2023-09-27 18:12:31
我有客户端/服务器系统(使用套接字),有多个客户端和单个服务器,每秒钟在所有客户端上发送xml数据。
XML数据的大小总是在1 - 18000个字符之间,服务器需要同时将这些XML数据发送给所有客户端。
现在我想知道,如何使服务器和客户端之间的通信更快。
也许我会问不止一个问题,但我真的卡在这一点上,我不能再继续了。
- 我应该压缩每个xml数据发送前?
- 我应该序列化 xml数据吗?(也许xml数据大小会减少)
- 我是否需要将每个xml数据转换为字节[]数组(用于缓冲区),因为通信必须在所有客户端同时完成。
谢谢!
如果您当前正在遍历连接的客户机,则可以使用带有内置pub-sub拓扑的中间层。mq能够让单个发布者非常高效地向n个订阅者发送信息,并具有c#绑定。您也可以按照您的建议在发送前压缩消息。
如果您正在使用WCF
,您可以轻松集成GZip压缩。
查看这里:WCF压缩HTTP示例
假设您在内部网工作,我建议您多播xml数据。这样,您的服务器将每秒发送一个xml数据副本(而不是为N个客户端发送N个数据副本)