我正在寻找一种方法将信息从服务器发送到客户端,例如歌曲或图像。将服务器信息发送到客户端
说明:我想从我的服务器发送数据到下载应用程序HTML5的客户端。
但我不知道如何。我知道我可以从客户端发送一个PHP请求到服务器,然后回答,但我怎么能从服务器发送一些东西,而不是客户端问。
谢谢。
我正在寻找一种方法将信息从服务器发送到客户端,例如歌曲或图像。将服务器信息发送到客户端
说明:我想从我的服务器发送数据到下载应用程序HTML5的客户端。
但我不知道如何。我知道我可以从客户端发送一个PHP请求到服务器,然后回答,但我怎么能从服务器发送一些东西,而不是客户端问。
谢谢。
你可能想尝试无论是服务器发送的事件或WebSockets的:
这些技术允许客户端Web应用程序保持开放的沟通随时从服务器中取出。服务器发送的事件专门服务器到客户端,而WebSocket可用于双向通信。
添加到jokeyrhyme的答案...
要异步从服务器到客户端发送数据。这意味着客户端不知道何时预期数据。实际上,今天的网络上,您有以下选择:
第一个选项是更好,因为那些了解技术已经存在很长时间了。
WebSocket更新,但它是更好的解决方案,因为它通过轮询,长轮询等缓解了基于HTTP技术的问题。对于小型应用程序或不频繁轮询的应用程序,您可以通过轮询逃脱。但是,当你想扩展时,这些解决方案会遇到问题。
我不打扰SSE(服务器发送事件),因为这几乎是WebSocket的一个子集。任何考虑SSE的人通常最终都会使用WebSocket,因为它的工作量相当,并且可以为您提供更多(例如双向交互)。
但WebSocket并不会取代HTTP;一个应用程序可以同时使用两者。使用正确的工具进行正确的工作。
在你的情况,有一个WebSocket连接的客户端。然后,您的后端应用程序可以随时(异步)通知客户端有事情要做(例如,新歌曲或图像可用,就像您在原始文章中所说的那样)。
我不会打扰发送歌曲或图像的WebSocket连接,虽然你可以。相反,客户端可以使用传统的HTTP技术来获取歌曲或图像,这些技术非常了解并擅长处理静态内容。例如,如果多个人下载相同的(歌曲或图像)文件,则可以利用缓存。
因此,通过WebSocket将要下载的歌曲/图像的id或URL发送给客户端。然后通过HTTP获取歌曲/图片。
这是一个同时使用HTTP和WebSocket的优点的例子。 WebSocket用于实际上不消耗带宽的高效异步交互,以及用于高效获取静态资源的HTTP。