JavaScript 中的 Web 套接字连接是入站连接吗?

Is a web socket connection in javascript an inbound connection?

本文关键字:连接 Web 套接字 JavaScript 中的      更新时间:2023-09-26

我正在尝试在我的网络服务器上建立网络套接字连接。该连接从 javascript 中的客户端运行,并连接到 Web 服务器上的 php 脚本。javascript也放置在Web服务器上,但从客户端Web浏览器运行。

问题是 hostgator 不允许入站套接字连接,除非您

购买专用服务器,但我不知道这是否算作入站套接字连接。

那么有谁知道这是否算作入站套接字连接或任何其他允许入站连接的网络托管站点?

提前谢谢你:)

websocket 连接以传入 HTTP 连接的形式开始(通常在与用于 Web 请求的同一端口上(,上面有一些自定义标头,这是所有 Web 服务器都必须配置为接受的内容(否则它们不会用作 Web 服务器(。 在与客户端进行简短的交换后,客户端请求升级并切换到 websocket 协议(初始连接是 HTTP 协议(。 该连接最初是HTTP连接,然后成为webSocket连接(如果Web服务器同意协议切换(。

所以,是的,它是与 Web 服务器的传入连接,但它是您的 Web 服务器必须已经接受的传入 HTTP 连接。 webSockets是故意这样设计的,以使它们与现有的HTTP网络基础设施,防火墙等高度兼容。因此,只需升级HTTP服务器软件(以支持webSocket协议(而不更改任何网络基础架构即可使用它们。


仅供参考,使用webSockets还有其他托管问题。 webSocket 是一种连续、持久的套接字连接。 为了使用它,您通常需要一个连续、持久的服务器进程。 许多成本较低的共享托管环境不支持此功能。 他们倾向于接受传入的HTTP请求,将其调度到它应该运行的任何脚本(例如PHP脚本(,让它在该请求上运行,然后脚本退出并且您的服务器进程不会继续运行。 这适用于低成本的共享主机,因为当应用未主动提供页面时,应用不会消耗任何服务器资源。 但是,该模型不适用于 webSocket,在 webSocket 中,您必须具有连续的服务器进程才能连接到 webSocket。

我不特别了解hostgator,但这是另一个需要研究的问题。 在Dreamhost上的共享主机上,我无法长时间运行的服务器进程。 在 Dreamhost 上,这需要一个 VPS 托管计划,从我所读到的内容来看,这在其他共享托管环境中也很常见。