2014-04-01 83 views
0

我正在寻找一种方法将信息从服务器发送到客户端,例如歌曲或图像。将服务器信息发送到客户端

说明:我想从我的服务器发送数据到下载应用程序HTML5的客户端。

但我不知道如何。我知道我可以从客户端发送一个PHP请求到服务器,然后回答,但我怎么能从服务器发送一些东西,而不是客户端问。

谢谢。

回答

0

添加到jokeyrhyme的答案...

要异步从服务器到客户端发送数据。这意味着客户端不知道何时预期数据。实际上,今天的网络上,您有以下选择:

  • 轮询,长轮询,彗星的一些形式等
  • 的WebSocket

第一个选项是更好,因为那些了解技术已经存在很长时间了。

WebSocket更新,但它是更好的解决方案,因为它通过轮询,长轮询等缓解了基于HTTP技术的问题。对于小型应用程序或不频繁轮询的应用程序,您可以通过轮询逃脱。但是,当你想扩展时,这些解决方案会遇到问题。

我不打扰SSE(服务器发送事件),因为这几乎是WebSocket的一个子集。任何考虑SSE的人通常最终都会使用WebSocket,因为它的工作量相当,并且可以为您提供更多(例如双向交互)。

但WebSocket并不会取代HTTP;一个应用程序可以同时使用两者。使用正确的工具进行正确的工作。

在你的情况,有一个WebSocket连接的客户端。然后,您的后端应用程序可以随时(异步)通知客户端有事情要做(例如,新歌曲或图像可用,就像您在原始文章中所说的那样)。

我不会打扰发送歌曲或图像的WebSocket连接,虽然你可以。相反,客户端可以使用传统的HTTP技术来获取歌曲或图像,这些技术非常了解并擅长处理静态内容。例如,如果多个人下载相同的(歌曲或图像)文件,则可以利用缓存。

因此,通过WebSocket将要下载的歌曲/图像的id或URL发送给客户端。然后通过HTTP获取歌曲/图片。

这是一个同时使用HTTP和WebSocket的优点的例子。 WebSocket用于实际上不消耗带宽的高效异步交互,以及用于高效获取静态资源的HTTP。

相关问题