美文网首页
反向ajax

反向ajax

作者: 机器不能学习 | 来源:发表于2018-09-18 14:46 被阅读0次

http通信是单向通信,也就是说如果没有客户端请求,服务器是不能向客户端发送信息的。
为了实现服务器的推送等功能,引入了长轮询和websocket.

什么是长轮询?
利用ajax,对服务器端进行请求。服务器hold住这个请求,把它长期保存在一个线程安全的集合里。这样服务器就可以在需要时在拿出请求,进行回应。
这里注意的是js端,用了
function connect(){
$.ajax({
url:"longpolling?method=onOpen",
cache:false,
dataType:"text",
success:function(data){
connect();
alert(data);
}
});
}
这里写成了无线循环,但是在长连接中,由于后台并不是在接收到请求后就立刻发送回应,因此这个链接会被服务器端一直持有。直到回应到达以后,success:function() 才会被执行。之所以在之后立刻重新执行的原因是,需要一个新的长连接再次发回给服务器,让服务器端继续保持直到下一次response的到来。

websocket的全双工通信。它是又H5提供,多个浏览器支持。
它使用ws或者是wss协议,直接保持一个长连接。
它允许和js建立一个远程的链接。
并且为链接两端提供了函数调用
send()向远程端发信息,close()关闭该链接。
监听函数:onopen() 网络建立时触发
onerror() 网络错误时触发
onclose() 关闭时触发
onmessage() 接受消息时触发
注意的是,类通过@ServerEndpoint()把自己作为一个服务器端点,所以你的线程安全集合里放的是这个端点类。
这个链接

当然也有很多开源框架帮助推送
https://www.cnblogs.com/best/p/5695570.html

相关文章

  • 反向ajax

    http通信是单向通信,也就是说如果没有客户端请求,服务器是不能向客户端发送信息的。为了实现服务器的推送等功能,引...

  • Web前端工程师面试问题收集

    Ajax XMLHttpRequest, XMLHttpRequest2 BOM 页面流量 堆栈 反向代理 输入网...

  • 4种方法解决js跨域的实现方式

    一、JSONP 使用ajax实现跨域: 二、CORS跨域资源共享 三、Nginx反向代理 四、webpack (在...

  • ajax跨域--nginx反向代理

    用nginx反向代理实现跨域,是最简单的跨域方式。只需要修改nginx的配置即可解决跨域问题,支持所有浏览器,支持...

  • ajax跨域之nginx反向代理

    只需在nginx.conf中添加三行代码 如果不做反向代理,在响应头中加入跨域允许,以PHP为例

  • 单体框架应用:3.跨域问题的解决

    在前端页面发起ajax请求时会出现跨域问题。跨域问题我目前了解到的解决办法有三种:1.Nignx反向代理。2.拦截...

  • AJAX

    主要内容: ajax 是什么、原生ajax 写法和jQuery ajax写法。 AJAX 是什么 ajax,即As...

  • JavaScript进阶知识点--AJAX及JSON

    AJAX 关于 AJAX 什么是 AJAX AJAX 的全称是 Asynchronous JavaScript a...

  • HTML5权威指南 | 第五部分 高级功能

    三十二、使用AJAX(上) Ajax起步: 使用Ajax事件: Ajax请求的错误处理: 中止Ajax请求: 三十...

  • ajax学习笔记

    Ajax学习笔记 Ajax简介 1. Ajax是什么? Ajax : Asynochronous javascri...

网友评论

      本文标题:反向ajax

      本文链接:https://www.haomeiwen.com/subject/ptaunftx.html