GVKun编程网logo

Pushlet的Ajax-pushlet-client.js分析(ajax push)

7

如果您想了解Pushlet的Ajax-pushlet-client.js分析和ajaxpush的知识,那么本篇文章将是您的不二之选。我们将深入剖析Pushlet的Ajax-pushlet-client

如果您想了解Pushlet的Ajax-pushlet-client.js分析ajax push的知识,那么本篇文章将是您的不二之选。我们将深入剖析Pushlet的Ajax-pushlet-client.js分析的各个方面,并为您解答ajax push的疑在这篇文章中,我们将为您介绍Pushlet的Ajax-pushlet-client.js分析的相关知识,同时也会详细的解释ajax push的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

Pushlet的Ajax-pushlet-client.js分析(ajax push)

Pushlet的Ajax-pushlet-client.js分析(ajax push)

Ajax-pushlet-client是pushlet的ajax客户端方式,对该JS进行分析后发现,它是采用了面向对象的javascript技术和充分利用XMLHttpRequest对象来实现的HTTP长连接,达到了服务器“推”技术。

1、属性
NV_P_FORMAT: ‘p_format=xml-strict’,//数据格式,默认是严格严格XML
NV_P_MODE: ‘p_mode=pull’,//pushlet采用的模式,默认为pull模式
pushletURL: null,//请求URL地址
webroot: null,//项目根路径
sessionId: null,//sessionId
STATE_ERROR: -2,//一些状态常量
STATE_ABORT: -1,
STATE_NULL: 1,
STATE_READY: 2,
STATE_JOINED: 3,
STATE_LISTENING: 3,
state: 1,//状态

statusMsg: ‘null’,//状态消息
statusChanged: false,//状态是否发生了改变
statusChar: ‘|’,//状态分隔符

2、方法
_init:获取XMLHttpRequest对象
设定pushlet的请求URL
将状态置为STATE_READY.

_doRequest (anEvent,aQuery):首先判断是不是出现错误,然后再判断是否需要等待状态,若不需要等待则构建查询字符串。最后调用_getXML(url,PL._onResponse)方法向服务器发出请求,后一个参数为回调方法。

_getWebroot:获取项目根目录,可以根据实际项目修改

_getXML:以get方式请求URL,用同步或者异步方式

_onResponse(xml):先将xml转变为pushlet事件对象(_rsp2Events),得到多个PushletEvent对象,再调用_onEvent()处理每个事件。

_rsp2Events(xml):取得事件标签(event),然后调用PushletEvent(),可能得到多个PushletEvent对象。

_onEvent(event):处理由服务器端传来的事件,首先判断事件类型,由不同的类型调用不同的处理方法:
Data:调用_doCallback(event,window.onData),方法处理。onData是自定义;
Refresh:从event中取得刷新时间,然后调用_doRequest(‘refresh’)刷新;
Error:将state置为STATE_ERROR,获取错误原因,调用_doCallback(event,window.onError);
join-ack:将状态置为” STATE_JOINED”,取得sessionId,调用_doCallback(event,window.onJoinAck);
join-listen-ack:将state设为STATE_LISTENING,取得sessionId,调用_doCallback(event,window.onJoinListenAck);
listen-ack、hb、hb-ack、leave-ack、refresh-ack、subscribe-ack、unsubscribe-ack、abort、/nack$/等类型也类似。

_addEvent(elm,evType,callback,useCapture):取得elm对象,调用以下三者之一:
obj.addEventListener(evType,useCapture);
obj.attachEvent(‘on’ + evType,callback);
obj[‘on’ + evType] = callback。
当ajax-pushlet-client.js初始化时调用了该方法:PL._addEvent(window,‘load’,PL._init,false);即初始化时相当于:window.onload=PL._init();

_doCallback(event,cbFunction):如果指定了回调方法,则调用cbFunction(event),如果没有指定那么调用window.onEvent(event)。

_getobject(obj):获取对象引用,若参数为对象直接返回该对象引用,若为字符串则按ID取得该对象。

PushletEvent(XML):与nl.justobjects.pushlet.Event相对应。其内部方法或属性如下:
Arr:数组,用于存放链值对;
getSubject():取得p_subject标签值;
getEvent():取得p_event标签值;
put(name,value);将链值对放入arr中;
get(name):按链取得值;
toString:转换为链值对字符串;
toTable:转换为表格;

将传入xml解析到arr中。

其对外公开方法: heartbeat():实质是调用了PL._doRequest(‘hb’),向后台请求“hb”事件。再被封装成了:p_heartbeat()精简方式。 相似的方法还有: Join:_doRequest(‘join’,PL.NV_P_FORMAT + ‘&’ + PL.NV_P_MODE); joinListen:PL._doRequest(‘join-listen’,query);请求加入同时监听; leave:_doRequest(‘leave’); listen(aSubject):_doRequest(‘listen’,query);按主题监听; publish(aSubject,theQueryArgs):_doRequest(‘publish’,query);按主题发布; subscribe(aSubject,aLabel):_doRequest(‘subscribe’,query);按主题订阅; unsubscribe(aSubscriptionId):_doRequest(‘unsubscribe’,query);按订阅ID退订;

Ajax Push Engine 1.0 发布

Ajax Push Engine 1.0 发布

APE (Ajax Push Engine)是一个全功能的开源 Ajax Push 的解决方案。APE 包含一个 Comet 服务器端(支持主流的 Linux 平台)和一个 JavaScript 客户端框架,用来在浏览器上实现任何的实时数据传输应用的需求,而无须安装任何的客户端软件。

1.0 版本的改进内容:

  • New and improved communication protocol :
    • Entirely using JSON and fully extensible.
    • Several commands can be nested in one request.
  • New transport methods :
    • XHRStreaming : A single connection is used to send and receive data. Better performance
      and reduced transfer delays.
    • JSONP : Allows to place «cross-domain» requests.
  • Support for BSD & Mac OS X (running the APE server) implemented by using KQueue
  • ServerSide JavaScript (SSJS) Implemented by using TraceMonkey (Mozilla SpiderMonkey)
  • Mootools support on the server side.
  • Complete Server-Side JavaScript API:
    • Handling of users, RAWs, Commands, Channels, Sockets
    • Use of non-blocking sockets (Client & Server)
    • MySQL connector module
    • API for doing external HTTP requests
    • WebHooks
  • Log files for errors, access and general information

下载 APE 1.0

android – 如何获取https,分块Push Servlet的InputStream?

android – 如何获取https,分块Push Servlet的InputStream?

我花了三天时间了解如何连接到https chunked push servlet并获取输入流.
与HttpsURLConnection的连接起作用,也与HttpClient连接
但在每个编程的代码中,当我尝试获取此servlet的InputStream时,此行会阻塞!没有错误,没有例外,没有.调试器只在此行停止并等待.

我知道servlet的Header中没有Content-Length,我知道这就是URLConnection块的方法getInputStream的原因.

但现在我没有其他想法.有没有人可以帮助我从servlet获取这个InputStream? HttpsURLConnection和HTTPClient的所有连接都很好,只是让InputStream失败,我不知道为什么.

解决方法

问题已经解决了! Epic Fail:因为我连接到servlet以获得响应,我必须连接到另一个servlet来启动会话,而不是保存cookie并继续.我使用HttpsURLConnection,它运行安静… Fazit:流媒体在 Android上运行良好

APE(Ajax Push Engine)教程

APE(Ajax Push Engine)教程

我一直在尝试在服务器端设置APE时遇到问题…是否有任何视频教程或任何教程比其网站上提供的更详细?

解决方法

即使这是一个老问题,我正在安装APE,我发现这看起来很有用: http://www.ifc0nfig.com/ape-an-introduction/

at&t 汇编 pushl push 的问题

at&t 汇编 pushl push 的问题

刚开始学 at&t 汇编  用的是汇编语言程序设计 布鲁诺的那本

在 ubuntu14.04 上怎么没有 pushl  只有 push  和 printf 配合还会段错误???
push $str
call printf
就这 2 句
str 是.asciz 类型的字符串

str:

    .asciz "hello,world\n"

今天关于Pushlet的Ajax-pushlet-client.js分析ajax push的介绍到此结束,谢谢您的阅读,有关Ajax Push Engine 1.0 发布、android – 如何获取https,分块Push Servlet的InputStream?、APE(Ajax Push Engine)教程、at&t 汇编 pushl push 的问题等更多相关知识的信息可以在本站进行查询。

本文标签: