apache-flex - 如何实现 HTTP 隧道

标签 apache-flex http tunneling

我编写了一个连接到后端服务器以交换数据的 Flash (Flex) 客户端。

我还从头开始编写了我的服务器,它有两个目的:

(1) Web (HTTP) 服务器 - 默认情况下监听端口 80

(2) 套接字/应用程序服务器 - 默认监听端口 443

仅供引用,出于方便原因,两个服务器都在同一进程空间中运行。他们预计不会处理大量负载,所以我对此很满意。

一旦 Flash 客户端从 HTTP 套接字提供给浏览器,客户端就会尝试打开到套接字/应用程序服务器的 XMLSocket。

我现在想要实现 HTTP 隧道,以便即使用户位于防火墙后面,我的客户端也可以连接到应用程序服务器。我不希望涉及任何外部服务器(代理等) - 只需使用我已有的服务器即可。

我的问题:

(1) 使用端口 443 是否更好? (它更好地欺骗防火墙吗?)

(2) 据我所知,我需要做的只是确保我的实际应用程序数据简单地封装在来自客户端和服务器的 HTTP 结构中(前面有一个虚拟 HTTP header )双方。是这样还是我在这里遗漏了什么?

(3) 我是否需要继续隐藏/封装通过套接字发送的每条消息,或者我可以在打开连接时封装第一条消息吗?

提前谢谢大家! 模糊

最佳答案

不要重新发明轮子 - 通过 AMF 协议(protocol)使用远程处理。 AMF 是一种基于 HTTP 的二进制格式,可在 ActionScript (MXML) 和服务器端语言之间执行序列化。从技术上讲,这就是 HTTP 隧道。 Adobe 为 AS/Java 提供了 AMF 的 BlazeDS(开源)和 LCDS(商业)实现,但也有针对 AS/PHP、AS/Python、AS/Ruby、AS/.Net 的 AMF 第三方实现。

顺便说一句,AMF 是一种开源格式。

关于apache-flex - 如何实现 HTTP 隧道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1184521/

相关文章:

excel - VBA调用网页不打开浏览器不返回数据

html - 是什么导致用户在提交表单时转到新页面,可以用 JavaScript 完成吗?

apache-flex - 如何使用远程服务器 (CAKPHP) 验证桌面 FLEX/AIR 应用程序?

apache-flex - 无需调试即可编译 Flex 应用程序? flex 编译器的优化选项?

json - 如何在 GET 请求中发送结构

通过 Web 服务的 Java RMI?

ruby-on-rails - stylesheet_link_tag 生成绝对链接而不是相对链接

objective-c - SpriteKit 动态 Body 怎么可能穿过 StaticBody?

apache-flex - 在 Flex <mx :LineSeries> 上显示数据点

php - 将 PHP MySql 与 Flex 捆绑在一起提供给客户端