我试图在我的网络服务器上建立一个网络套接字连接。连接从javascript中的客户端运行,并连接到Web服务器上的php脚本。 javascript也放在网络服务器上,但是从客户端webbrowser运行。
问题是hostgator不允许入站套接字连接,除非您购买专用服务器,但我不知道这是否算作入站套接字连接。
所以有人知道这是否算作入站套接字连接或允许入站连接的任何其他网络托管网站?
提前谢谢你:)
答案 0 :(得分:2)
websocket连接作为传入的HTTP连接(通常在用于Web请求的同一端口上)启动生活,其上有一些自定义标头,这是所有Web服务器必须配置为接受的(或者它们不会'可以用作Web服务器)。在与客户端进行简短交换后,客户端请求升级并切换到websocket协议(初始连接是HTTP协议)。那个以HTTP连接开始生命的连接然后成为webSocket连接(如果Web服务器同意协议切换)。
所以,是的,它是与Web服务器的传入连接,但它是您的Web服务器必须已接受的传入HTTP连接。 webSockets的设计目的是为了使它们与现有的HTTP网络基础设施,防火墙等高度兼容......所以它们只能通过升级HTTP服务器软件(支持webSocket协议)而不改变任何网络来使用基础设施。
仅供参考,使用webSockets还存在其他托管问题。 webSocket是一种连续,持久的套接字连接。为了使用它,您通常需要一个持续,持久的服务器进程。许多成本较低的共享托管环境不支持这种情况。他们倾向于接受传入的HTTP请求,将其分派给它应该运行的任何脚本(例如PHP脚本),让它在该请求上运行,然后脚本退出并且您的服务器进程不会继续运行。这适用于低成本的共享主机,因为当应用程序不主动处理页面时,您的应用程序不会消耗任何服务器资源。但是,该模型不适用于webSockets,其中必须有连续的服务器进程才能连接到webSocket。
我不知道具体关于hostgator,但这是另一个需要研究的问题。在我在Dreamhost上的共享主机上,我不能有一个长时间运行的服务器进程。在Dreamhost上,这需要一个VPS主机方案,而且从我读过的内容来看,这也适用于其他共享主机环境。