我正在尝试在我的网络服务器上建立网络套接字连接。该连接是从客户端以 javascript 运行的,并连接到网络服务器上的 php 脚本。javascript 也放置在网络服务器上,但从客户端网络浏览器运行。
问题是 hostgator 不允许入站套接字连接,除非您购买专用服务器,但我不知道这是否算作入站套接字连接。
那么有谁知道这是否算作入站套接字连接或任何其他允许入站连接的网络托管站点?
先感谢您 :)
我正在尝试在我的网络服务器上建立网络套接字连接。该连接是从客户端以 javascript 运行的,并连接到网络服务器上的 php 脚本。javascript 也放置在网络服务器上,但从客户端网络浏览器运行。
问题是 hostgator 不允许入站套接字连接,除非您购买专用服务器,但我不知道这是否算作入站套接字连接。
那么有谁知道这是否算作入站套接字连接或任何其他允许入站连接的网络托管站点?
先感谢您 :)
Websocket 连接以传入的 HTTP 连接(通常与用于 Web 请求的端口相同)开始,上面带有一些自定义标头,这是所有 Web 服务器都必须配置为接受的东西(或者它们不会是任何用作网络服务器)。在与客户端进行简短的交流后,客户端请求升级并切换到 websocket 协议(初始连接是 HTTP 协议)。该连接以 HTTP 连接开始,然后变为 webSocket 连接(如果 Web 服务器同意协议切换)。
所以,是的,它是一个到 Web 服务器的传入连接,但它是一个传入的 HTTP 连接,您的 Web 服务器必须已经接受它。webSockets 是这样设计的,目的是使它们与现有的 HTTP 网络基础设施、防火墙等高度兼容......因此只需升级 HTTP 服务器软件(以支持 webSocket 协议)而不改变任何网络即可使用它们基础设施。
仅供参考,使用 webSockets 还有其他托管问题。webSocket 是一个连续的、持久的套接字连接。为了使用它,您通常需要一个连续的、持久的服务器进程。许多低成本的共享托管环境不支持这一点。他们倾向于接受传入的 HTTP 请求,将其分派到它应该运行的任何脚本(例如 PHP 脚本),让它在该请求上运行,然后脚本退出并且您的服务器进程不会继续运行。这适用于低成本的共享托管,因为当您的应用程序不主动地服务页面时,它不会消耗任何服务器资源。但是,该模型不适用于 webSockets,您必须有一个连续的服务器进程才能连接到 webSocket。
我不具体了解hostgator,但这是另一个需要研究的问题。在 Dreamhost 上的共享主机上,我无法长时间运行服务器进程。在 Dreamhost 上,这需要一个 VPS 托管计划,据我所知,这对于其他共享托管环境也很常见。