2010-02-18 98 views
0

我正在使用C#编写即时消息程序(仅供学习)。
只是想知道我的方式是对还是错。
我创建了一个Client类,包含一个NetworkStream和读/写功能。
服务器为每个客户端创建一个新线程,线程监听任何新消息。C#即时消息

有没有更好的办法?

回答

1

您不一定需要为每个客户端产生一个线程。我会调查观察者设计模式,因为它解决了发布 - 订阅问题,这是查看即时消息传递应用程序的好方法,特别是如果您希望多个听众与一个讲话者交谈。 这是一个很好的开始:http://www.blackwasp.co.uk/Observer.aspx。此链接讨论观察者模式和提及即时消息:http://www.oodesign.com/observer-pattern.html

您可能会发现单线程方法可能能够处理很多消息。根据你设计课程的方式,你可能会发现将整个对话放在他们自己的线程中很有用。您还应该考虑使用队列来处理传入和传出的消息,并将队列读取器放入其自己的线程中。

听起来像一个有趣的项目。

1

尝试使用WCF。 Here是一个很好的例子。