[英]Send information from a server to a client
我正在寻找一种从服务器向客户端发送信息的方法,例如歌曲或图像。
说明:我想从服务器向下载HTML5应用程序的客户端发送数据。
但是我不知道如何。 我知道我可以将php请求从客户端发送到服务器,然后再回答,但是我如何在没有客户端请求的情况下从服务器发送一些请求。
谢谢。
您可能想尝试服务器发送的事件或WebSockets:
http://www.html5rocks.com/zh-CN/tutorials/eventsource/basics/
http://www.html5rocks.com/zh-CN/tutorials/websockets/basics/
这些技术允许客户端Web应用程序随时保持开放状态,以与服务器进行通信。 服务器发送的事件专门用于服务器到客户端,而WebSockets可用于双向通信。
添加到jokeyrhyme的答案...
您要异步将数据从服务器发送到客户端。 这意味着客户端不知道何时需要数据。 实际上,在当今的Web上,您可以选择以下选项:
由于这些技术已经存在了很长时间,因此更好地理解了第一种选择。
WebSocket较新,但它是更好的解决方案,因为它缓解了轮询,长时间轮询等困扰基于HTTP的技术的问题。对于小型应用程序或不频繁轮询的应用程序,您可以摆脱轮询。 但是,当您想扩展规模时,这些解决方案就会遇到问题。
我不会理会SSE(服务器发送的事件),因为那几乎是WebSocket的一个子集。 考虑使用SSE的任何人通常最终只会使用WebSocket,因为它的工作量几乎相同,并且可以为您提供更多的服务(例如双向交互)。
但是,WebSocket不会取代HTTP; 一个应用程序可以同时使用两者。 使用正确的工具完成正确的工作。
对于您的情况,有一个具有WebSocket连接的客户端。 然后,您的后端应用程序可以随时(异步)通知客户端有事情要做(例如,正如您在原始帖子中所说的,可以使用新的歌曲或图像)。
尽管可以,但我不会打扰WebSocket连接发送歌曲或图像。 取而代之的是,客户端可以使用传统的HTTP技术来获取歌曲或图像,该技术已被很好地理解并且擅长处理静态内容。 例如,如果多个人正在下载同一文件(歌曲或图像),则可以利用缓存。
因此,将要通过WebSocket下载的歌曲/图像的ID或URL发送到客户端。 然后通过HTTP获取歌曲/图像。
这是同时使用HTTP和WebSocket的示例。 WebSocket用于几乎没有带宽消耗的高效异步交互,而HTTP用于高效地获取静态资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.