IRC协议-恒定客户端连接正常

本文关键字:连接 客户端 协议 IRC | 更新日期: 2023-09-27 18:25:23

当我尝试C#和WCF时,我一直在读到的一件事是,让客户端与服务器保持恒定电流连接是多么不可扩展。尽管WCF允许这样做,但如果你想有任何像样的可伸缩性,建议的最佳实践似乎是使用"每次调用"而不是"每次会话"进行实例管理。(如果我错了,请纠正我)

然而,据我所知,IRC使用与服务器的恒定客户端连接,IRC服务器(服务器网络)在任何给定时间都为数十万客户端提供服务。那么,在这种情况下,保持客户端与服务器的恒定连接实际上并没有什么"坏"吗?

IRC协议-恒定客户端连接正常

只要不遵循每个连接一个线程的架构,服务器就可以支持相当多的并发TCP连接。

IRC不需要太多的每个连接状态,除了TCP发送和接收窗口。

如果您需要实时双工通信(IRC是一种聊天协议),那么保持TCP连接是一个相关的选项。然而,TCP连接带来了网络开销,并且操作系统对并发开放TCP连接的数量有实际限制。WCF通常用于不需要双工通信的SOAP/HTTP/RPC上下文,但它也提供了合适的绑定和通道。为了回答您的问题,如果您对通信有实时双工要求,保持连接打开并没有什么不好的。

是的,这样的架构是可行的,但是。。。"乒乓球"的发明是有原因的——让双方都知道对方还在。您实际上无法判断客户端是否空闲,因为它没有太多要说的,或者因为它实际上已断开连接,并且您正在等待TCP超时。

UPD:"成千上万的客户端"在IRCnet上是可能的,只是因为服务器网络。对于单机而言,C10K问题仍然是一个问题。