在共享主机的网页服务器上使用WebSocket可能吗?

8 投票
2 回答
7513 浏览
提问于 2025-04-17 20:09

我用的是PHP、JS、HTML和CSS。如果有必要的话,我愿意学习Ruby或Python。

我下一个项目需要让用户实时接收到服务器的数据,反过来也能发送数据到服务器。我在我的共享服务器上有shell访问权限,但我不太确定能否访问端口。在共享主机上使用websockets或者其他高效的服务器与客户端连接是否可行?如果可以的话,我需要做些什么?

2 个回答

3

直到几周前,使用websockets需要一个单独的服务器,或者像varnish/haproxy这样的服务器代理来监听80端口并重定向普通的http流量。最新版本的nginx增加了对websockets的内置支持,但如果你的主机提供商没有使用这个功能,那就没办法了。(注意,我对这个nginx功能没有个人经验)

我个人觉得,对于大多数应用来说,websockets可以用服务器推送事件来替代——这是一种非常轻量级的协议,基本上是另一种保持在服务器端打开的http连接,发送一串文本消息,消息之间用两个换行符分隔。

大多数不错的浏览器都支持这个功能,但因为这不支持互联网浏览器,所以有一些补丁可以在这里这里找到。

这覆盖了连接的一侧,通常是通过长轮询实现的。另一方向可以用XHR的常规方式处理。最终结果在我看来与websockets非常相似,但客户端到服务器的消息延迟稍高一些。

5

如果你想要最佳的性能和完全控制你的服务器设置,你需要一个“自己的”服务器。
现在有很多虚拟服务器提供商,这意味着你可以完全控制你的IP地址,但实际上这个物理服务器是和很多其他客户共享的,这样价格就便宜了,灵活性也更高。

我推荐你使用亚马逊EC2的免费套餐,免费期结束后你可以随时取消。而且他们有很多不同的地理位置可以选择。

在欧洲,我觉得另一个不错的提供商是Tilaa

你可能还可以在Webhosting talk论坛上找到更多适合你需求的选择。

撰写回答