HTML5BOM-服务器通信技术

一、服务器推送技术---server-send-Event

是服务器向浏览器客户端推送数据的过程,是单向的。

1、服务器要求

在php服务器中, 要求网页的mime类型为:text/event-stream。 eg:header("Content-Type: text/event-stream\n\n"),这是在php服务器中。

2.text/event-stream 有一定的格式,数据流由一个或多个注释行及字段行组成。注释行是由冒号开始的行,字段行由字段名和字段值组成的,多个事件之间用空行分隔。

eg: echo ‘:‘. $now. "\n"    //这个是注释行

eg: echo ‘data:‘ .$now ."\n" //这个是字段行

通信数据的编码是UTF-8

3. EventSource 对象

是浏览器用于实现Server-Sent-Event 的关键

方法: var  source=new EventSource(url)    其中  url 就是要推送数据的服务器技术的URL地址,(服务器端的)

当事件流被打开,浏览器发送HTTP请求, 服务器响应请求,

当创建EventSource对象之后 就可以定义事件监听函数的各种事件

open事件: 当连接打开时触发该事件

message事件: 当收到信息时触发该事件

close 事件: 当连接关闭时触发该事件

var  source=new EventSource(url);

source.onopen=function(){}

source.onmessage=function(){}

source.onerror=function(){}

EventSource 是一个不停间歇运行的程序,甚至导致浏览器奔溃,所以可以用worker对执行的部分起到优化作用。

二、web Socket 套接字连接

这个是web应用程序和服务器进程间的双向通信,而服务器推进技术只能实现服务器到浏览器客户端的单向传递。

方法: var  socke=new WebSocket(host)// host 是一个主机名  host="ws://localhost:12344/"

这个对象也有相应的三个方法: onopen  onmessage  onerror

websocket 和http 之间的区别在 传输数据时,http 每次传输的过程都要加上报头,而websocket是通信是只执行一次这个过程。所以再聊天程序中,websocket比http 方法更好。

时间: 2024-08-24 22:27:47

HTML5BOM-服务器通信技术的相关文章

浏览器与服务器通信技术——Ajax详解

使用BOM接口从服务器获取数据,获取的是整个页面,得到数据之后需要刷新整个页面.运用ajax技术无须刷新页面即可从服务器取得数据.ajax的核心是XMLHttpRequest对象. 一. 创建XHR对象 var xhr=new XMLHttpRequest(); 二.启动和发送请求 xhr.open("get","example.php",false); open方法接受3个参数:要发送的请求的类型,请求的URL和表示是否异步发送请求的布尔值.URL相对于执行代码的

JAVA服务器与C#客户端的通信技术调研

JAVA服务器与C#客户端的通信技术调研 研究背景及目的: ARPG项目的需求:需要将现有的服务器从C++的编写平台换为java语言.在对需求进行分析的过程中,发现几点需要研究实现的问题 java与c+语言特性迥异,相比c+ 和c#关系的密切性,java需要对c#风格的一些数据结构和编码格式进行兼容: c#拥有的无符号数据类型如 ushort unint java并不存在,需要对数据类型进行转换: 根据开发需要 客户端现有的通信协议不能更改,所以在java中进行各类型的兼容操作 在项目中底层通信

springmvc mybaits websocket 服务器框架

获取[下载地址]   [免费支持更新]三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] A 集成代码生成器 [正反双向(单表.主表.明细表.树形表,开发利器)+快速构建表单; freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块B 集成阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Dr

Ajax 通信技术--hidden Frame GET 请求 和 POST 请求

hidden frame技术有四个步骤: 1.用户通过可见的frame与页面交互,而意识不到hidden frame,当用户向服务器请求数据时,javascript 函数调用hidden frame,这个调用重定向hidden frame到另外一个页面,复杂一点posting form data. 2.向服务器传递数据. 3.接受服务器的回应.因为你和frames打交道,所以这个回应是另一个页面,这个页面会包括请求返回的数据,和一些javascript去把数据转化为可见得frame. 4.在返回

springmvc_mybaits_mysql_oracle_shiro_ehcache_HTM5_bootstrap_后台框架源码_微信远程控制服务器

A 代码生成器(开发利器);  B 阿里数据库连接池druid; C 安全权限框架shiro ; D ehcache 自定义二级缓存  系统为主流的 springmvc+mybaits 3.2 版本 ,有maven版本和非maven版本,赠送同UI hibernate版本(支持sqlsever mysql oracle)  jdk 1.6 1.7 1.8  tomcat 6 7 8 (响应式 手机 PC 平板 最下面手机截图)1. 有 oracle .msyql.spring3.0.spring

巧用Android网络通信技术,在网络上直接传输对象

本文首发于CSDN博客,转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8967080 要做一个优秀的Android应用,使用到网络通信技术是必不可少的,很难想象一款没有网络交互的软件最终能发展得多成功.那么我们来看一下,一般Android应用程序里都是怎么实现网络交互的,这里拿一个Boook对象为例: 如上图所示,首先在手机端生成一个Book对象,里面包含书名.作者.价格等数据.为了要将这些数据发送到服务器端,我们要从Book对

开源服务器软件

Java缓存服务器 jmemcached http://www.oschina.net/p/jmemcached jmemcached 是一个Java版的 memcached 缓存服务器,基本上跟 memcached 是兼容的.jmemcached 是使用 Apache MINA 作为无堵塞的网络IO操作,但之后使用Netty作为网络异步实现机制. Web服务器 TornadoTornado web server 是使用Python编写出來的一个极轻量级.高可伸缩性和非阻塞IO的Web服务器软件

Web实时通信技术

本周在应用宝前端分享会上分享了Web实时通信技术,分享内容整理如下. 一.传统Web数据更新 传统的Web数据更新,必须要刷新网页才能显示更新的内容.这是浏览器采用的是B/S架构,而B/S架构是基于HTTP协议的.HTTP协议的工作模式就是客户端向服务器发送一个请求,服务器收到请求后返回响应.所以这种工作模式是基于请求显示数据的. 这样的工作方式有其自身的好处,但是也会导致很多问题.在Web应用越来越火的今天,经常会遇到需要服务器主动发送数据到客户端的需求,比如事件推送.Web聊天等.这些需求使

【微信远程控制服务器】springmvc_mybaits_mysql_oracle_shiro_ehcache_HTM5_bootstrap_后台框架源码

获取[下载地址]   QQ: 313596790   [免费支持更新]A 代码生成器(开发利器);全部是源码     增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势C 安全权限框架shiro ;  Shiro 是一个用

主流JAVA框架 springmvc mybaits websocket 服务器框架

获取[下载地址]   QQ: 313596790   [免费支持更新] 三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] A 集成代码生成器(开发利器);                                         技术:313596790 增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页