【发布时间】:2009-06-24 15:58:58
【问题描述】:
我正在编写一个将发布和订阅主题的客户端/服务器应用程序。 我对这个项目的架构和实现几乎没有疑问。
首先设置基础,我将使用 c# (.NET 3.5),并且我想明确使用原始套接字/AIO/线程(起初没有 WCF,因为我确实想根据我的需要微调服务器和客户端)。客户端主要订阅主题,但有时可能会向服务器发送命令,甚至发布数据。有些客户也可能只是发布者。
你认为应该是什么 我的服务器的基本构建块( 每个客户端的线程数, iocp, ....)。
客户是否应该使用相同的 NetworkStream 监听订阅 主题并发送命令/发布到 服务器?如何等待数据和 同时将数据写入 流,这应该在 同一个线程?
(示例代码将不胜感激:))
【问题讨论】:
-
为什么要重新发明轮子?为什么不使用 MSMQ (
System.Messaging)?或者像CodeMesh这样的东西?不要故意拖钓...我问的唯一原因是,这个问题空间已经通过很多产品得到了很好的探索,并且有很多难题可以通过这种方法为您的 OOTB 解决。 -
嗨 cwash ,我同意这些应用程序实际上可以实现我的目标,但我更喜欢看底层图片以了解内部结构并知道如何调整我的应用程序并能够查看专业人士和几种设计的缺点。此外,我的应用程序需要能够订阅一些主题,但不是全部。我还需要能够创建某种本地代理来节省带宽并在许多本地应用程序之间共享内存。
标签: c# networking asynchronous