标签归档:服务器端

【转】HTTP长连接的“服务器推”技术(3) – 讨论

晨:    目前我对comet技术的总体印象是:如果仅限于单向推送数据,那么comet无疑是有效的。 对于双向较频繁交换数据,comet技术会退化成最简单的轮询。 我和方荣的共同想法都认为在双向通讯的时候这样做效率太差。 目前覆盖最广泛的技术里解决这一问题最有效的是Flash AS3中新增的Socket。Socket解决了XMLSocket的一些技术障碍,并且可以使用raw binary data。 理论上可以实现一个通用的Flash长连接组件。

发表在 服务器端 | 标签为 , , , , | 留下评论

【转】HTTP长连接的“服务器推”技术(2) – 转载

基于 Iframe 及 htmlfile 的流(streaming)方式 iframe 是很早就存在的一种 HTML 标记, 通过在 HTML 页面里嵌入一个隐蔵帧,然后将这个隐蔵帧的 SRC 属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。 图 3. 基于流方式的服务器推模型 上节提到的 AJAX 方案是在 JavaScript 里处理 XMLHttpRequest 从服务器取回的数据,然后 Javascript 可以很方便的去控制 HTML 页面的显示。同样的思路用在 iframe 方案的客户端,iframe 服务器端并不返回直接显示在页面的数据,而是返回对客户端 Javascript 函数的调用,如“”。服务器端将返回的数据作为客户端 JavaScript 函数的参数传递;客户端浏览器的 Javascript 引擎在收到服务器返回的 JavaScript 调用时就会去执行代码。 从图3可以看到,每次数据传送不会关闭连接,连接只会在通信出现错误时,或是连接重建时关闭(一些防火墙常被设置为丢弃过长的连接, … 继续阅读

发表在 服务器端 | 标签为 , , , , | 留下评论

【转】HTTP长连接的“服务器推”技术(1) – 转载

转载地址:http://www.builder.com.cn/2007/0904/488393.shtml 很多应用譬如监控、即时通信、即时报价系统都需要将后台发生的变化实时传送到客户 端而无须客户端不停地刷新、发送请求。本文首先介绍、比较了常用的“服务器推”方案,着重介绍了 Comet - 使用 HTTP 长连接、无须浏览器安装插件的两种“服务器推”方案:基于 AJAX 的长轮询方式;基于 iframe 及 htmlfile 的流方式。最后分析了开发 Comet 应用需要注意的一些问题,以及如何借助开源的 Comet 框架-pushlet 构建自己的“服务器推”应用。 “服务器推”技术的应用 传统模式的 Web 系统以客户端发出请求、服务器端响应的方式工作。这种方式并不能满足很多现实应用的需求,譬如: 监控系统:后台硬件热插拔、LED、温度、电压发生变化; 即时通信系统:其它用户登录、发送信息; 即时报价系统:后台数据库内容发生变化; 这些应用都需要服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求。“服务器推”技术在现实应用中有一些解决方案,本文将这些解决方案 分为两类:一类需要在浏览器端安装插件,基于套接口传送信息,或是使用 RMI、CORBA 进行远程调用;而另一类则无须浏览器安装任何插件、基于 HTTP 长连接。 将“服务器推”应用在 Web 程序中,首先考虑的是如何在功能有限的浏览器端接收、处理信息: 客户端如何接收、处理信息,是否需要使用套接口或是使用远程调用。客户端呈现给用户的是 HTML 页面还是 Java applet … 继续阅读

发表在 服务器端 | 标签为 , , , , | 留下评论

【转】(跨域)JSONP原理 $.getJSON 用法 jquery跨域

简介符合Web2.0特征的众多网站一个明显的特点就是采用Ajax。Ajax提供了在后台提交请求访问数据的功能。其实现主要使用的是XMLHttpRequest函数,这个函数允许客户端的Javascript发送到服务器端的HTTP请求并获得返回数据。Ajax同时也是目前众多的Mashup背后的驱动力量,他们都利用Ajax来聚合不同来源的信息。 理解同源策略的限制同源策略是指阻止代码获得或者更改从另一个域名下获得的文件或者信息。也就是说我们的请求地址必须和当前网站的地指相同。同源策略通过隔离来实现对资源的保护。这个策略的历史非常悠久从Netscape Navigator 2.0时代就开始了。 解决这个限制的一个相对简单的办法就是在服务器端发送请求,服务器充当一个到达第三方资源的代理中继。虽然是用广泛但是这个方法却不够灵活。另一个办法就是使用框架(frames),将第三方站点的资源包含进来,但是包含进来的资源同样要受到同源策略的限制。 有一个很巧妙的办法就是在页面中使用动态代码元素,代码的源指向服务地址并在自己的代码中加载数据。当这些代码加载执行的时候,同源策略就不会起到限制。但是如果代码试图下载文件的时候执行还是会失败,幸运的是,我们可以使用JSON(JavaScript Object Notation)来改进这个应用。 JSON和JSONP与XML相比,JSON是一个轻量级的数据交换格式。JSON对于JavaScript开发人员充满魅力的原因在于JSON本身就是Javascript中的对象。例如一个ticker对象   var ticker = {symbol:’IBM’,price:100}而JSON串就是   {symbol:’IBM’,price:100}这样我们就可以在函数的参数中传递JSON数据。我们很容易掌握在函数中使用动态的JSON参数数据,但是我们的目的并不是这个。通过使我们的函数能够加载动态的JSON数据,我们就能够处理动态的数据,这项技术叫做 Dynamic Javascript Insertion。我们看下面的例子index.html中   <script type=”text/javascript”>       function showPrice(data){           alert(“Symbol:” + data.symbol + “, Price:” + data.price);       }              var url = … 继续阅读

发表在 Javascript | 标签为 , , , , | 留下评论

网络编程TCP

以前学基础没学这块。这几天看了点视频。写点简单的! 仅实现了客户端想服务器段发送一条消息,服务器收到消息打印。 如果要扩展应该是client端也应该有输入流对象,来接收服务器端发的消息 对应的服务器端也有输出流对象用来向客户端写信息。 如果是多个客户端,还应该考虑多线程的使用。线程目前是搞不清楚。呜呜 本人水平太垃圾,还望各位高手指教啊!呵呵! TCPClient.java package com.cstp.net; import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException; public class TcpClient { public static void main(String[] args) throws UnknownHostException, IOException, InterruptedException {    Socket s=new Socket("127.0.0.1",8888);    //因为要发送信息给server,构造输出流    … 继续阅读

发表在 默认分类 | 标签为 | 留下评论

Oracle笔记1

oracle   商用的大型数据库【mysql 也是关系型数据库      xdbms – 面向对象的数据库 – NHN China 】          rdbms    关系型数据库   —– 一般使用         【基本的数据库】          1 用的最多          2 olap (oracle) 和 ldap (oracle) 都是基于 oracle rdbms          3 oracle 的功能“很”强大 、 “很”麻烦              数据库的记录条数都是没有限制的,但是数据库的性能与记录条数是成反比的。         PostgreSql   … 继续阅读

发表在 Oracle | 标签为 , , , | 留下评论