2

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

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

(1) Web (HTTP) Server - 默认侦听端口 80

(2) Socket/Application-Server - 默认监听 443 端口

仅供参考,出于方便的原因,两台服务器都在相同的进程空间中运行。他们预计不会处理大量负载,所以我对此很好。

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

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

我的问题:

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

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

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

提前谢谢各位!绒毛

4

1 回答 1

4

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

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

于 2009-07-26T13:06:53.733 回答