反向ajax
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、$.ajax、axios、fetch、superagentiOS
- Ajax 什麼是Ajax? Ajax的基本語法
- 四層反向代理和七層反向代理
- Ajax
- nginx 反向代理Nginx
- Nginx反向代理Nginx
- jQuery AjaxjQuery
- ajax概述
- wordpress ajax
- jQuery - AJAXjQuery
- Nginx 配置:反向代理Nginx
- Nginx 配置反向代理Nginx
- axios,Ajax,jQuery ajax,axios和fetch的區別iOSjQuery
- 反向代理學習筆記(一) Nginx與反向代理緒論筆記Nginx
- 取消上次ajax
- 複習 - ajax
- jQuery AJAX 方法jQuery
- AJAX 介紹
- JSON&AJAXJSON
- Ajax基本使用
- Ajax簡介
- ajax,axios,fetchiOS
- 初識AJAX
- jQuery.ajaxjQuery
- ajax +jquery 基本jQuery
- Ajax技術~~
- ajax請求
- ajax 封裝封裝
- Vue-ajaxVue
- 手寫ajax
- 前端之AJAX前端
- JavaScript 之 ajaxJavaScript
- Ajax與Fetch
- 自定義_ajax
- ajax優點?
- 回顧ajax
- nginx正向代理、反向代理Nginx
- 寶塔反向代理配置