Long-Polling, Websockets, SSE(Server-Sent Event), WebRTC 之间的区别
2014-04-30 16:36
543 查看
在下面的示例中,客户端指的是浏览器,服务器指的是网站服务器主机。
为了更好的理解这些知识点,你应该简单了解典型的http网站是如何工作的。
客户端从服务器端请求网页
服务器作出相应的反应
服务器返回相应到客户端
客户端使用普通的http方式向服务器端请求网页
客户端执行网页中的JavaScript轮询脚本,定期循环的向服务器发送请求(例如每5秒发送一次请求),获取信息
服务器对每次请求作出响应,并返回相应信息,就像正常的http请求一样
客户端使用普通的http方式向服务器端请求网页
客户端执行网页中的JavaScript脚本,向服务器发送数据、请求信息
服务器并不是立即就对客户端的请求作出响应,而是等待有效的更新
当信息是有效的更新时,服务器才会把数据推送给客户端
当客户端接收到服务器的通知时,立即会发送一个新的请求,进入到下一次的轮询
客户端使用普通的http方式向服务器端请求网页
客户端执行网页中的JavaScript脚本,与服务器之间建立了一个连接
当服务器端有有效的更新时,会发送一个事件到客户端
服务器到客户端数据的实时推送,大多数内容是你需要的
你需要一台可以做Event Loop的服务器
不允许跨域的连接
如果你觉得这些还不够,想要了解更多,可以参考下面的文件和手册
Using server-sent eventshttps://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_eventsServer-Sent Eventshttp://html5doctor.com/server-sent-eventsStream Updates with Server-Sent Eventshttp://www.html5rocks.com/en/tutorials/eventsource/basics/Tutorial: JSF 2 and HTML5 Server Sent Eventshttp://jaxenter.com/tutorial-jsf-2-and-html5-server-sent-events-42932.html
客户端使用普通的http方式向服务器端请求网页
客户端执行网页中的JavaScript脚本,与服务器之间建立了一个连接
服务器和客户端之间,可以双向的发送有效数据到对方
服务器可以实时的发送数据到客户端,同时客户端也可以实时的发送数据到服务器
你需要一台可以做Event Loop的服务器
使用 WebSockets 允许跨域的建立连接
它同样支持第三方的websocket主机服务器,例如Pusher或者其它。这样你只需要关心客户端的实现
,降低了开发难度。
如果你觉得这些还不够,想要了解更多,可以参考下面的文件和手册
An Introduction To WebSocketshttp://www.developerfusion.com/article/143158/an-introduction-to
4000
-websockets/Writing WebSocket client applicationshttps://developer.mozilla.org/en-US/docs/WebSockets/Writing_WebSocket_client_applicationsStart Using HTML5 WebSockets Todayhttp://code.tutsplus.com/tutorials/start-using-html5-websockets-today--net-13270
WebRTC是一种点对点类型的传输方式,它支持多种传输协议,如:UDP、TCP甚至是抽象层的协议。设计它时同时考虑到了允许使用可靠和不可靠的两种方式传输数据。这种技术一般应用在传输数据量较大的内容,比如音、视频等流媒体的传输。
Comet是一种用于web的推送技术,能使服务器实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,长轮询和iframe流。如果你想了解更多,可以参考维基百科或者IBM
Event LoopEvent Loop是一个程序结构,用于等待和发送消息和事件。
长轮询长轮询是在打开一条连接以后保持,等待服务器推送来数据再关闭的方式。
iframe流
iframe流方式是在页面中插入一个隐藏的iframe,利用其src属性在服务器和客户端之间创建一条长链接,服务器向iframe传输数据(通常是HTML,内有负责插入信息的javascript),来实时更新页面。
iframe流方式的优点是浏览器兼容好,Google公司在一些产品中使用了iframe流,如Google Talk。
为了更好的理解这些知识点,你应该简单了解典型的http网站是如何工作的。
普通的http:
客户端从服务器端请求网页服务器作出相应的反应
服务器返回相应到客户端
AJAX Polling:
客户端使用普通的http方式向服务器端请求网页客户端执行网页中的JavaScript轮询脚本,定期循环的向服务器发送请求(例如每5秒发送一次请求),获取信息
服务器对每次请求作出响应,并返回相应信息,就像正常的http请求一样
AJAX Long-Polling:
客户端使用普通的http方式向服务器端请求网页客户端执行网页中的JavaScript脚本,向服务器发送数据、请求信息
服务器并不是立即就对客户端的请求作出响应,而是等待有效的更新
当信息是有效的更新时,服务器才会把数据推送给客户端
当客户端接收到服务器的通知时,立即会发送一个新的请求,进入到下一次的轮询
HTML5 Server Sent Events (SSE) / EventSource:
客户端使用普通的http方式向服务器端请求网页客户端执行网页中的JavaScript脚本,与服务器之间建立了一个连接
当服务器端有有效的更新时,会发送一个事件到客户端
服务器到客户端数据的实时推送,大多数内容是你需要的
你需要一台可以做Event Loop的服务器
不允许跨域的连接
如果你觉得这些还不够,想要了解更多,可以参考下面的文件和手册
Using server-sent eventshttps://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_eventsServer-Sent Eventshttp://html5doctor.com/server-sent-eventsStream Updates with Server-Sent Eventshttp://www.html5rocks.com/en/tutorials/eventsource/basics/Tutorial: JSF 2 and HTML5 Server Sent Eventshttp://jaxenter.com/tutorial-jsf-2-and-html5-server-sent-events-42932.html
HTML5 Websockets:
客户端使用普通的http方式向服务器端请求网页客户端执行网页中的JavaScript脚本,与服务器之间建立了一个连接
服务器和客户端之间,可以双向的发送有效数据到对方
服务器可以实时的发送数据到客户端,同时客户端也可以实时的发送数据到服务器
你需要一台可以做Event Loop的服务器
使用 WebSockets 允许跨域的建立连接
它同样支持第三方的websocket主机服务器,例如Pusher或者其它。这样你只需要关心客户端的实现
,降低了开发难度。
如果你觉得这些还不够,想要了解更多,可以参考下面的文件和手册
An Introduction To WebSocketshttp://www.developerfusion.com/article/143158/an-introduction-to
4000
-websockets/Writing WebSocket client applicationshttps://developer.mozilla.org/en-US/docs/WebSockets/Writing_WebSocket_client_applicationsStart Using HTML5 WebSockets Todayhttp://code.tutsplus.com/tutorials/start-using-html5-websockets-today--net-13270
WebRTC:
WebRTC是一种点对点类型的传输方式,它支持多种传输协议,如:UDP、TCP甚至是抽象层的协议。设计它时同时考虑到了允许使用可靠和不可靠的两种方式传输数据。这种技术一般应用在传输数据量较大的内容,比如音、视频等流媒体的传输。
Comet:
Comet是一种用于web的推送技术,能使服务器实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,长轮询和iframe流。如果你想了解更多,可以参考维基百科或者IBMEvent LoopEvent Loop是一个程序结构,用于等待和发送消息和事件。
长轮询长轮询是在打开一条连接以后保持,等待服务器推送来数据再关闭的方式。
iframe流
iframe流方式是在页面中插入一个隐藏的iframe,利用其src属性在服务器和客户端之间创建一条长链接,服务器向iframe传输数据(通常是HTML,内有负责插入信息的javascript),来实时更新页面。
iframe流方式的优点是浏览器兼容好,Google公司在一些产品中使用了iframe流,如Google Talk。
相关文章推荐
- Long-Polling, Websockets, SSE(Server-Sent Event), WebRTC 之间的区别
- Long-Polling, Websockets, SSE(Server-Sent Event), WebRTC 之间的区别
- Long-Polling, Websockets, SSE(Server-Sent Event), WebRTC 之间的区别与使用
- What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet?
- WebSockets VS Server-Sent Events VS Long-polling
- WebSockets VS Server-Sent Events VS Long-polling
- WebSockets VS Server-Sent Events VS Long-polling
- WebSockets vs Server-Sent Events vs Long-polling
- WebSockets vs Server-Sent Events vs Long-polling
- 从long polling 到 websockets
- Web 通信 之 长连接、长轮询(long polling)
- Web通信之:长轮询(long-polling)
- WebRTC系列(2):room server,signaling server 和客户端之间的交互
- 使用wireshark抓包分析浏览器无法建立WebSocket连接的问题(server为Alchemy WebSockets组件)
- WEB通信之 长连接、长轮询(long polling)
- WebCallServer WebRTC with Asterisk
- php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
- [转]php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
- Web 通信 之 长连接、长轮询(long polling)
- Web通信之长连接、长轮询(long polling)