您的位置:首页 > Web前端 > HTML5

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: