<sup id="m40ya"></sup>
  • 
    
  • <kbd id="m40ya"></kbd>
    <samp id="m40ya"></samp>
    <ul id="m40ya"></ul>
  • 更多精彩內(nèi)容,歡迎關(guān)注:

    視頻號(hào)
    視頻號(hào)

    抖音
    抖音

    快手
    快手

    微博
    微博

    當(dāng)前位置:首頁(yè) 科技百科 java comet

    java comet

    文檔

    java comet

    comet是基于HTTP長(zhǎng)連接的“服務(wù)器推”技術(shù),是一種新的Web應(yīng)用架構(gòu)。基于Java的成熟的服務(wù)器推送框架有DWR,另外comet的應(yīng)用主要體現(xiàn)在股票系統(tǒng)和實(shí)時(shí)通訊。
    推薦度:
    導(dǎo)讀comet是基于HTTP長(zhǎng)連接的“服務(wù)器推”技術(shù),是一種新的Web應(yīng)用架構(gòu)。基于Java的成熟的服務(wù)器推送框架有DWR,另外comet的應(yīng)用主要體現(xiàn)在股票系統(tǒng)和實(shí)時(shí)通訊。

    java comet是什么,讓我們一起了解一下?

    comet是基于HTTP長(zhǎng)連接的“服務(wù)器推”技術(shù),是一種新的Web應(yīng)用架構(gòu)。基于Java的成熟的服務(wù)器推送框架有 DWR ,另外comet的應(yīng)用主要體現(xiàn)在股票系統(tǒng)和實(shí)時(shí)通訊。

    Comet有以下兩種實(shí)現(xiàn)方式:

    1、長(zhǎng)輪詢(long-polling):用JS發(fā)送Ajax請(qǐng)求,但是服務(wù)器不會(huì)立馬響應(yīng),直到服務(wù)器有消息給客戶端時(shí)再響應(yīng),響應(yīng)完成后連接關(guān)閉,客戶端立即再次發(fā)送請(qǐng)求,等待響應(yīng)。

    2、流(streaming):和上面long-polling不同的是,服務(wù)器發(fā)完消息后,不會(huì)關(guān)閉連接,而是保持HTTP連接繼續(xù)等待下一條消息。這樣客戶端不用每次收到消息連接關(guān)閉后再次請(qǐng)求。

    這種方式的原理是HTTP協(xié)議響應(yīng)頭的一個(gè)Header:Transfer-Encoding: chunked。普通的HTTP響應(yīng)頭中會(huì)有Content-Length表示整個(gè)響應(yīng)的字節(jié)大小,瀏覽器接收到所有的響應(yīng)數(shù)據(jù)才會(huì)加載內(nèi)容。而設(shè)置Transfer-Encoding: chunked后表示響應(yīng)大小不固定,瀏覽器接收到一點(diǎn)響應(yīng)數(shù)據(jù)就加載一點(diǎn)。基于流的Comet后臺(tái)實(shí)現(xiàn)是一樣的,但是前端會(huì)有幾種不同的方式:iframe流和針對(duì)FireFox的方式。

    那么實(shí)際操作中,Comet是如何實(shí)現(xiàn)的?(以長(zhǎng)輪詢?yōu)槔?/p>

    前端頁(yè)面:

    
    
    
    
    
    function?getMsg()?{
    //?請(qǐng)求地址是CometServlet對(duì)應(yīng)的URL,加上一個(gè)隨機(jī)值參數(shù)防止緩存問(wèn)題
    var?url?=?"comet"?+?"?t="+Math.random();
    var?request?=?new?XMLHttpRequest();
    request.onreadystatechange?=?function()?{
    if?(request.readyState?==?4)?{
    if?(request.status?==?200)?{
    if?(request.responseText)?{
    //?追加到HTML中
    document.body.innerHTML?+=?request.responseText;
    }
    }
    //?Ajax完成后,再次Ajax請(qǐng)求
    getMsg();
    }
    };
    request.open("GET",?url,?true);
    request.send();
    }
    window.onload?=?getMsg;
    
    
    
    
    

    后臺(tái)Servlet:

    public?class?CometServlet?extends?HttpServlet?{
    @Override
    public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)?throws?IOException?{
    //?這里用Thread.sleep來(lái)模擬comet,相當(dāng)于每隔5秒服務(wù)器向客戶端推送一條消息
    try?{
    Thread.sleep(5000);
    }?catch?(InterruptedException?e)?{
    e.printStackTrace();
    }
    PrintWriter?out?=?response.getWriter();
    out.println("helloworld
    "); }

    在瀏覽器中打開(kāi)html頁(yè)面,可以看到每隔5秒服務(wù)器向客戶端推送一個(gè)helloworld字符串。而接收到字符串HTTP連接就斷開(kāi)了,然后Ajax再立即發(fā)出請(qǐng)求等待服務(wù)器的下次響應(yīng)。?

    以上就是小編今天的分享了,希望可以幫助到大家。

    文檔

    java comet

    comet是基于HTTP長(zhǎng)連接的“服務(wù)器推”技術(shù),是一種新的Web應(yīng)用架構(gòu)。基于Java的成熟的服務(wù)器推送框架有DWR,另外comet的應(yīng)用主要體現(xiàn)在股票系統(tǒng)和實(shí)時(shí)通訊。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關(guān)推薦
    山楂干泡水最佳搭配 java commandline java comparable接口 java compiler java config java console java console.log 復(fù)活節(jié)的由來(lái) java const java consumer接口 統(tǒng)一和康師傅是哪國(guó)的 怎么刪掉word中的空白頁(yè) 微信筆記在哪里編輯 椰子怎么挑 蟑螂最怕三種克星 毛尖屬于什么茶 微信鈴聲怎么設(shè)置自己的歌 怎么確認(rèn)微信還在不在電腦端 河南過(guò)年的風(fēng)俗有哪些 麗水市是哪個(gè)省 java combobox java color java collections java collect java clone() java clob java classloader java class.forname java class java cipher java charset java charsequence java charat java channel iPad怎么重啟 java cglib 平板如何錄屏 java ceiling java callback java calendar獲取當(dāng)前時(shí)間
    Top 精品一区精品二区| 人妻AV一区二区三区精品| 国产精品久久久久久麻豆一区| 国产精品成人观看视频网站| 在线播放偷拍一区精品| 国产AV无码专区亚洲精品| 国内精品久久久久影视| 亚洲国产精品乱码在线观看97| 久久久久99精品成人片三人毛片| 国产精品久久久久久久| 91大神在线精品网址| 亚洲热线99精品视频| 精品一区二区三区无码视频| 国产精品久久久久久久久久影院| 久久精品国产精品亚洲艾草网| 亚洲精品国产高清嫩草影院| 国产精品秘入口18禁麻豆免会员| 日韩精品区一区二区三VR | 国产69精品久久久久妇女| 亚洲精品人成电影网| 国产精品久久久久AV福利动漫| 国产va免费精品| 国产精品成年片在线观看| 99精品国产高清一区二区麻豆| 久久99热精品免费观看牛牛| 国产亚洲精品拍拍拍拍拍| 免费观看国产精品| 揄拍成人国产精品视频| 亚洲精品国产高清在线观看| 亚洲精品美女在线观看| 亚洲国产精品成人久久| 99精品国产在热久久| 国产精品无码久久久久| 九九视频精品在线| 国产精品怡红院在线观看| 人妻精品久久无码区洗澡| 亚洲日韩精品无码专区加勒比| 中文字幕动漫精品专区| 69久久夜色精品国产69小说 | 国产伦精品一区二区三区视频小说| 国产精品久久久久久久久久久不卡|