我只是想弄清楚这两件事是如何工作的。显然 websocket 使用推送技术,因此客户端不必进行长轮询,或者不断刷新并检查是否发生了变化(有点像事件监听器)。
但是对于委托,就像在目标 C 中一样,委托是通过一遍又一遍地发送请求来不断检查是否已触发方法。还是将方法已被触发的信息推送给了代表?
或者我关于委托的第三个理论是,因为它们当然在同一个程序中,所以这两个类(协议和委托类)总是有一个“开放连接”,有点像轮询。还是像我的第二段那样,信息真正被推送了。
WebSockets 是基于双向全双工消息的通信通道。许多推送技术可以获得较低的服务器到客户端(浏览器)延迟,但使用 WebSockets,您还可以获得较低的客户端到服务器延迟(因此也可以降低往返延迟)。
根据我的阅读(我不是 Objective-C 专家),委托只是在对象之间创建松散协议(在对象意义上,而不是网络意义上)的一种方式。我不知道实施细节,但我确定没有进行轮询。委托方法可能只是在需要时查找。不需要“打开连接”或轮询。将委托视为进行函数/方法调用的一种方式,而不是网络传输(如 WebSockets)。这个Apple 文档更详细地介绍了。