返回所有打开的Web套接字会话集的副本,这些会话表示与此会话表示连接的同一端点的连接。
这是不明确的,因为" endpoint" 可以引用此Session
表示的唯一端点实例,或者它可以引用端点类(更准确地说是该类的实例集)。每个新连接都会创建一个新的类实例,以便每个实例始终只有一个Session
(据我所知)。有鉴于此,人们会认为第一种解释是错误的。
Danny Coward,上述链接文档的作者和Java WebSocket Programming在刚才提到的书中给出了一个如何使用支持上述假设的方法的例子:
提醒一下,每个客户 连接到此服务器端点的是与唯一关联的 WebSocket连接,每个连接都由唯一的 会话实例。所以这种方法是列出所有方法的一种非常方便的方法 将客户端连接到此端点。
人们期望它的工作方式确实是它通常如何工作,但Tomcat 7.0.63改变了这一点。这里有一些关于此问题的问题,例如this one和this one,并且它被视为一个错误。在BugZilla中它也是reported as a bug,但是被反驳为预期的行为。阅读changelog for Tomcat 7.0.63,我们会看到以下内容:
Session.getOpenSessions应该返回与给定端点实例关联的所有会话,而不是端点类中的所有会话。
会引起很多混乱。
我的问题是:
getOpenSessions
有什么用途,因为每个实例只有一个Session
?答案 0 :(得分:0)