【发布时间】:2014-06-09 02:58:31
【问题描述】:
我正在使用 Atmosphere Framework 2.0.8。
我已经在我的应用程序中实现了一个 AtmosphereHandler,并且通过 WebSockets 和长轮询正确地进行了两种方式的通信。
我正在尝试为客户端断开连接时添加一些处理代码以清理特定于该客户端的某些资源(即,我要删除的表中有一个条目)。
我已阅读以下 wiki 条目:
OnDisconnect 技巧:https://github.com/Atmosphere/atmosphere/wiki/onDisconnect-tricks 配置氛围监听器:https://github.com/Atmosphere/atmosphere/wiki/Configuring-Atmosphere-Listener
我不清楚的是我应该在哪里添加调用
atmosphereResource.addEventListener( new AtmosphereResourceEventListenerAdapter() {} );
我最终在 AtmosphereHandler 的 JavaDoc 中找到了一些示例代码,该代码在 onRequest() 方法中注册了 EventListener。 http://atmosphere.github.io/atmosphere/apidocs/org/atmosphere/cpr/AtmosphereHandler.html
我想知道这是否是正确的方法?
据我了解,AtmosphereResource 代表客户端和服务器之间的连接,用于该连接的生命周期。通过来自同一客户端的 onRequest() 方法进行多次调用时,对象的 uuid 保持一致。因此,每次调用 onRequest 方法时,同一个 AtmosphereResource 对象都会添加 EventListener。
这似乎是错误的。这不会导致为每个 AtmosphereResource 注册数千个 EventListener 吗?
似乎每个 AtmosphereResource 的 EventLister 应该只注册一次。
我觉得我在这里缺少一些基本的东西。谁能解释一下?
【问题讨论】:
标签: atmosphere