【发布时间】:2015-01-18 22:30:09
【问题描述】:
我创建了一个 Socket.IO 服务器,它将列表详细信息推送到连接的客户端。通过浏览器中的 HTTP,一切都使用 Web 套接字按预期工作,但是将使用该服务的客户端类型之一是严格的 Flash(不是套接字回退,只是直接使用 Flash)。我们正在使用AS3 Web Socket Client 库。
当 Flash 客户端(由另一个团队构建)尝试连接到服务器时,它会违反安全沙盒。我知道这与从 Socket.IO 服务器提供的策略文件有关,但我不知道 如何 提供此文件。当我telnet 127.0.0.1 10843 或telnet 127.0.0.1 843 我没有得到回应。如果我记得,在过去的项目中,我们已经能够远程登录到策略文件服务器以获取响应。这将是帮助我验证它是否被提供的理想选择。
我知道默认端口是10843,也试过设置成843。
这是我所拥有的:
- 在 localhost:3000 上运行的推送服务
- 浏览器客户端可以连接和加入频道没有问题
- 我在根目录中有一个 crossdomain.xml 文件(不确定是否需要)
我有以下与策略文件有关的设置:
// Socket Setup
io.set('transports', ['websocket','flashsocket']);
io.set('flashPolicyServer', true);
io.set('flash policy port', 843);
顺便说一句(也许),使用这些设置我在启动服务时也遇到错误(尽管它仍然启动):
Option flashPolicyServer is not valid. Please refer to the README.
Option flash policy port is not valid. Please refer to the README.
我很茫然。希望不是重复的;我搜索了高低,并相信我错过了一些小事。有什么建议吗?
【问题讨论】:
-
试试FlashSocket.io。我没有使用它,但它看起来像你需要的,因为自 1.0 发布以来不支持 flash。我已经更新了我的答案以反映这一点。
标签: node.js flash sockets socket.io cross-domain-policy