Flash 记录器不包括 Firefox 中的 cookie

标签 flash firefox cookies rtmp

问候。

我有一个问题,即通过 Firefox 运行的 Flash 播放器不包括 HTTP cookie。这些在通过 Internet Explorer 运行时包括在内。

我想知道是否有人知道在与 Flash 服务器通信时如何强制 Flash 包含 cookie?

背景资料

我们有一个连接到 red5 服务器的闪存记录器。这些连接是通过提供池地址的负载平衡器打开的。池中有多个服务器。

记录仪使用 RTMPT 协议(protocol)发送数据。这会通过 HTTP 发送 RMTP(这允许防火墙穿越)。为了确保数据到达正确的服务器,我们使用了基于 cookie 的负载平衡。如果存在某个 cookie,负载平衡器会将连接定向到正确的服务器。

当用户通过其网络浏览器登录网站时会设置此 cookie。然后,Flash 播放器在与服务器通信时将这些 cookie 包含在 RTMTP HTTP 请求中。这可确保打开到正确服务器的 RMTPT 连接。

使用 fiddler,我抓取了一些流量(来自 IE)来说明我的意思: POST http://hostname/idle/31283773/0 HTTP/1.1
Content-Type: application/x-fcs
User-Agent: Shockwave Flash
Host: host
Content-Length: 1
Connection: Keep-Alive
Pragma: no-cache
Cookie: JSESSIONID=sessionid; target-server=target-server-value

不幸的是,当使用 firefox 时,cookie 不包含在到服务器的流量中:POST http://hostname/idle/31283773/0 HTTP/1.1
Content-Type: application/x-fcs
User-Agent: Shockwave Flash
Host: host
Content-Length: 2030
Connection: Keep-Alive
Pragma: no-cache

播放器是用 ActionScript 编写的,并通过 javascript/HTML 进行初始化。我们使用 NetConnection/NetStream 与服务器对话。

我可以访问加载闪存记录器的 HTML/javascript 中的目标服务器 ID,但对于我来说,我无法弄清楚在发送 RTMPT 数据时如何包含 cookie,甚至这样的事情是可能的。

我想知道的

谁能告诉我:
1 - 是否可以指示闪存记录器在与闪存服务器对话时包含某些 cookie?它们在通过 IE 运行时会自动包含在内。
2 - 如果是这样 - 谁能告诉我怎么做?

到目前为止,我已经花了几个小时在谷歌上搜索没有运气的解决方案 - 希望这里有人可能有一个想法:-)
感谢您的宝贵时间,如果您需要更多信息,请告诉我。

最佳答案

您是否查看过为什么没有发送 cookie?这不是因为您正在使用负载平衡并且域正在更改吗? Firefox 只允许同一个域访问同一个 cookie。

只是一个想法,希望它有所帮助。

皮特

关于Flash 记录器不包括 Firefox 中的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196692/

相关文章:

flash - OOP 问题 : Extending a class, 覆盖函数和类似 jQuery 的语法

flash - 如果没有 System.gc() 调用,对象不会被删除

android - 通过 Adob​​e Air 应用程序启动 Android 应用程序

flash - 播放音频时使闪光灯按钮消失

javascript - 创建 cookie 将不起作用

apache - 如果域匹配则设置 cookie

html - Firefox 的外部样式

html - child 的边缘影响祖先包括 body

css - 以一致的行为实现 html5 粘性样式属性

javascript - 保存为 cookie 时,JSON 编码数组转换为字符串