使用 nodejs 和 expressjs 的 flash 套接字策略

Posted

技术标签:

【中文标题】使用 nodejs 和 expressjs 的 flash 套接字策略【英文标题】:flash socket policy with nodejs and expressjs 【发布时间】:2014-02-06 13:18:49 【问题描述】:

我在 nodejs + expressjs + socket.io 上有一个小应用程序,它就像一个魅力......主要是。

flash socket policy server 有问题。问题是我无法在端口 843 上运行套接字策略服务器。如果 Flash Player 无法从端口 843 检索主策略文件,那么它会在尝试连接的端口上请求一个套接字策略文件。因此,解决方案可能是在 80 响应正常的 http 请求(使用 express)并在同一端口上捕获带有数据 <policy-file-request/>\0 的普通 TCP 连接并使用策略响应。我正在尝试适应 this code 但没有运气。

<policy-file-request/>\0 传入时如何强制 express 以 TCP 连接策略响应,否则提供 http 响应?

【问题讨论】:

【参考方案1】:

我不知道 socket.io Flash 电影是否可以做到这一点,但您可以明确设置一个端口来加载策略文件。

从 ActionScript 3 开发人员的角度来看,您可以这样做:

Security.loadPolicyFile("xmlsocket://example.com:10843");
socket = new FlashSocket("example.com:80");

这样可以从其他端口加载crossdomain.xml,然后是您的 HTTP 端口或 843。

【讨论】:

在 843 以外的端口上运行闪存策略服务器对我不起作用。 1. 不能解决问题,因为代理(公司)后面有大量用户,他们通常只有 80 443 端口可用。用户的大问题。 2.我只能使用80、443端口。对我来说是个大问题。解决方案是在端口 80 上运行服务器并识别它是用于闪存策略文件还是 HTTP 的原始 TCP 连接。但我不知道如何在带有 epress 的节点中做到这一点。

以上是关于使用 nodejs 和 expressjs 的 flash 套接字策略的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 NodeJS/ExpressJS 和 Postman 获取 POST 数据

Nodejs,expressjs - 如何提供延迟响应

数据未使用 NodeJS、ExpressJS 和 EJS 保存到 MongoDB 数据库

nodejs 与 expressjs 和 SSL p7b 证书

刷新页面显示找不到文件错误如何使用 [angular js + NodeJS/ExpressJS] 解决

如何使用 nodejs 模块 http2 将 http2 与 ExpressJS 集成?