我正在使用 C# 开发一个即时消息程序(仅供学习)。
只是想知道我的方法是对还是错。
我创建了一个包含 NetworkStream 和读/写函数的客户端类。
服务器为每个客户端创建一个新线程,该线程监听任何新消息。
有更好的办法吗?
我正在使用 C# 开发一个即时消息程序(仅供学习)。
只是想知道我的方法是对还是错。
我创建了一个包含 NetworkStream 和读/写函数的客户端类。
服务器为每个客户端创建一个新线程,该线程监听任何新消息。
有更好的办法吗?
试试 WCF。这是一个很好的示例。
您不一定需要为每个客户端生成一个线程。我将研究观察者设计模式,因为它解决了发布-订阅问题,这是查看即时消息传递应用程序的好方法,特别是如果您希望一个谈话者有多个听众。这是一个很好的起点: http: //www.blackwasp.co.uk/Observer.aspx。此链接讨论了观察者模式并提到了即时消息:http ://www.oodesign.com/observer-pattern.html 。
您可能会发现单线程方法可能能够跟上大量消息。根据您设计课程的方式,您可能会发现将整个对话放在他们自己的线程中很有用。您还应该考虑使用队列来处理传入和传出消息,队列读取器也可以在它们自己的线程中。
听起来是个有趣的项目。