HTML5-桌面式web应用-与web服务器通信( XHR, 服务器发送事件, Web Socket:)
2015-04-06 11:44
429 查看
XHR: XMLHttpRequest
服务器发送的实现: server-sent event, 让服务器能够定时给网页发送消息;
web socket框架: 让浏览器与服务器能够随心所欲地双向通信。
向服务器发送消息: XHR, Ajax 技术, 是一对一的; 不属于HTML5的 最新 部分
XMLHttpRequest对象:
基本思想: 让javascript代码自己发送请求, 以便随时获取数据。 这种请求是异步的, 用户请求期间仍能响应用户请求;
向web服务器提问:
获取新内容:
服务器发送事件:
XHR: 一对一; 客户端主动发起数据请求,客户端控制通信,结束后是否资源
轮询方式: 客户端定时轮询跟新客户端的信息; setInterval() 或者 setTimeout();
服务器发送事件: server-sent event; 可以让网页与服务器保持连接; 服务器任何时候都可以发送消息, 而不必频繁断开连接,; 服务器发送事件很简单!!!! 大多浏览器支持;
注释: 服务器端单方向 发送消息, 是单向的 数据流动!!!
服务器端语言: PHP, ASP.net, Ruby, Java, Python 等等
消息格式:
服务器发送事件这个标准不允许随意发送数据,而是必须遵循简单但明确的格式;
通过服务器脚本发送消息:
在网页中处理脚本:
var source;
function startListening() {
source = new EventSource("TimeEvents.php");
source.onmessage = receiveMessage;
}
Web Socket:
1, web socket 是一种专用手段, 非常适合聊天室, 大型多人游戏, 或者端到端的写作工具。
2, web socket 方案看起来可能会无比复杂。 网页端的代码好写, 但服务器端的代码非常复杂, 不好写, 而且要对多线程和网络模型有深刻的理解。
支持情况: http://caniuse.com/#feat=websockets
简单的web socket客户端:
var socket = new Webs哦创可贴(“ws://localhost/socketServer.php");
var socket = new Webs哦创可贴(“wss://localhost/socketServer.php"); //https
socket.onopen = connectionOpen;
socket.onmessage = messageReceived;
socket.onerror = errorOccurred;
socket.onclose = connectionclosed;
socket.disconnect();
使用现成的web socket服务:
现成的web socket服务器: echo 消息简单回应程序: http://www.websocket.org/echo.html
简单的聊天室: http://html5demos.com/web-socket
多人绘图板: 使用了web socket 和 HTML5 canvas: http://mrdoob.com/projects/multiuerpad/
测试服务器:
PHP: http://code.google.com/p/ppwebsocket
Ruby: http://github.com/igrigorik/em-websocket
Python: apache扩展, httt://code.google.com/p/pywebsocket
.NET: http;//superwebsocket.codeplex.com
Java: http://jwebsocket.org
Node.js: http://github.com/miksago/node-websocket-server
Kaazing: http://kaazing.com/products/html5-edition.html
服务器发送的实现: server-sent event, 让服务器能够定时给网页发送消息;
web socket框架: 让浏览器与服务器能够随心所欲地双向通信。
向服务器发送消息: XHR, Ajax 技术, 是一对一的; 不属于HTML5的 最新 部分
XMLHttpRequest对象:
基本思想: 让javascript代码自己发送请求, 以便随时获取数据。 这种请求是异步的, 用户请求期间仍能响应用户请求;
向web服务器提问:
获取新内容:
服务器发送事件:
XHR: 一对一; 客户端主动发起数据请求,客户端控制通信,结束后是否资源
轮询方式: 客户端定时轮询跟新客户端的信息; setInterval() 或者 setTimeout();
服务器发送事件: server-sent event; 可以让网页与服务器保持连接; 服务器任何时候都可以发送消息, 而不必频繁断开连接,; 服务器发送事件很简单!!!! 大多浏览器支持;
注释: 服务器端单方向 发送消息, 是单向的 数据流动!!!
服务器端语言: PHP, ASP.net, Ruby, Java, Python 等等
消息格式:
服务器发送事件这个标准不允许随意发送数据,而是必须遵循简单但明确的格式;
通过服务器脚本发送消息:
在网页中处理脚本:
var source;
function startListening() {
source = new EventSource("TimeEvents.php");
source.onmessage = receiveMessage;
}
Web Socket:
1, web socket 是一种专用手段, 非常适合聊天室, 大型多人游戏, 或者端到端的写作工具。
2, web socket 方案看起来可能会无比复杂。 网页端的代码好写, 但服务器端的代码非常复杂, 不好写, 而且要对多线程和网络模型有深刻的理解。
支持情况: http://caniuse.com/#feat=websockets
简单的web socket客户端:
var socket = new Webs哦创可贴(“ws://localhost/socketServer.php");
var socket = new Webs哦创可贴(“wss://localhost/socketServer.php"); //https
socket.onopen = connectionOpen;
socket.onmessage = messageReceived;
socket.onerror = errorOccurred;
socket.onclose = connectionclosed;
socket.disconnect();
使用现成的web socket服务:
现成的web socket服务器: echo 消息简单回应程序: http://www.websocket.org/echo.html
简单的聊天室: http://html5demos.com/web-socket
多人绘图板: 使用了web socket 和 HTML5 canvas: http://mrdoob.com/projects/multiuerpad/
测试服务器:
PHP: http://code.google.com/p/ppwebsocket
Ruby: http://github.com/igrigorik/em-websocket
Python: apache扩展, httt://code.google.com/p/pywebsocket
.NET: http;//superwebsocket.codeplex.com
Java: http://jwebsocket.org
Node.js: http://github.com/miksago/node-websocket-server
Kaazing: http://kaazing.com/products/html5-edition.html
相关文章推荐
- 服务器发送事件SSE和web sockets实时通信
- H5学习笔记-应用缓存,Web worker,服务器发送事件
- Cocos2d-html5 通过apache ant编译成web应用以便部署到服务器
- html5 学习之路 四 (应用缓存 、web worker 、服务器推送)
- [ASP.NET MVC] Real-time之HTML5 服务器发送事件(server-sent event)
- HTML5支持服务器发送事件(Server-Sent Events)-单向消息传递数据推送(C#示例)
- HTML5 服务器发送事件(Server-Sent Events)
- HTML5 服务器发送事件(Server-Sent Events)介绍
- HTML5 服务器发送事件(Server-Sent Events)
- 关于socket通信的理解,socket连接通过IP+端口号的方式,那么如果两个服务器端的应用在同一台机器上,并且位于同一个tomcat容器下,那么岂不是两个服务器都收到了客户端发送的信息
- HTML5开发移动web应用—JQuery Mobile(4)-事件
- HTML5 服务器发送事件(Server-Sent Events)
- 利用XMLHttpRequest(XHR)对象实现与web服务器通信
- html5实现服务器发送事件
- HTML5 服务器发送事件(server-sent events)
- HTML5-桌面式web应用-数据存储
- 第十三节 html5学习——服务器发送事件
- Android学习笔记---27_网络通信之通过GET和POST方式提交参数给web应用,以及使用httpClient,来给web项目以post方式发送参数
- HTML5服务器发送事件(Server-Send Events)
- 【HTML5】Server-Sent服务器发送事件