gpt4 book ai didi

apache-flex - HttpSession session ID 与 FlexSession ID 不同

转载 作者:行者123 更新时间:2023-12-01 11:07:15 24 4
gpt4 key购买 nike

我有一个通过 JSP 页面提供服务的 Flex 应用程序。在此页面中,我在加载页面时使用 HttpSession 输出 session ID:

System.out.println("Session ID: " + session.getId());

在 BlazeDS 中托管的一个非常简单的远程对象中(使用 AMF channel 和标准 RemoteObject 功能从 flex 应用程序调用)我也输出 session ID,但这次使用 FlexSession(据我所知应该环绕 HttpSession) .

System.out.println("FlexSession ID: " + FlexContext.getFlexSession().getId());

我希望两个 ID 相同,但事实并非如此。 session ID 不同导致问题,因为 HttpSession 中存储了数据,我需要能够从 BlazeDS 中的远程对象访问这些数据。

我已经读完了有关 BlazeDS 和 FlexClient/FlexSession/FlexContext 的阅读 Material ,但不明白为什么 FlexSession 没有链接到 HttpSession。非常感谢任何指点。

我觉得我必须在这里遗漏一些基本的东西,我正在访问

最佳答案

我认为它与 FlashPlayer 无关..更多地与 FlexSession 的概念以及 BlazeDS/LCDS 的工作原理有关。例如,即使不使用 http channel ,您也可以拥有一个事件 session - 当使用 NIO/RTMP 时,您将绕过应用程序服务器和 http 协议(protocol)。因此,拥有一个具有各种实现的抽象类 FlexSession 是有意义的。

然而,当使用 BlazeDS FlexSession 时,将在内部包装一个 HttpSession 对象,而 removeAttribute/getAttribute/setAttribute 实际上是从 HttpSession 对象调用相同的方法..所以您可以访问 HttpSession 中的所有数据。如果不是,请提供更多详细信息。

但是,当使用 RTMP channel (顺便说一下,它只存在于 LCDS 中)时,它不会工作,在这种情况下你需要改变你的设计。

关于apache-flex - HttpSession session ID 与 FlexSession ID 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4205925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com