聊天室和彈幕的js實現感覺沒差

來源:互聯網
上載者:User

標籤:...   xhr   返回   解析   form   package   ons   insert   檢測   

var hasLastCheckReturned = true;

var lastCheckedTime = 0;

setTimeout(function(){

if(!hasLastCheckReturned){

return; //上次還沒返回結果。放棄這次請求。

}

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function(){

if(xhr.readyState === 4){

if(xhr.responseCode=== 200){

//解析彈幕

vardanmakuList = yourFormatParser(xhr.responseText);

for(var i =0; i < danmakuList.length; i++){

CM.insert(danmakuList[i]);//把增量彈幕每一個都插入

};

lastCheckedTime= Date.now(); //更新上次檢測的時間

hasLastCheckReturned= true;

} else {

//可能出了問題

hasLastCheckReturned= true;

}

}

};

xhr.open(‘GET‘,‘http://yoururl/somevideoid/?from=‘ + lastCheckedTime, true); //告訴伺服器上次檢查的時間,來擷取增量

xhr.send(); //發送請求

hasLastCheckReturned = false;

}, 3000); //每3s檢查新的彈幕

以及:

//基於socket.io和JQuery來簡化代碼

var socket = io(); //開啟流

socket.on(‘danmaku‘, function(data){

//當遇到danmaku事件,就把推送來的彈幕推送給CCL

var danmaku = yourFormatParser(data);

CM.insert(danmaku);

});

$(‘#send-danmaku-btn‘).click(function(){

//當按了發送彈幕的按鈕

var data = {

"text":"擷取資訊。。"

...

};//通過UI擷取新彈幕的資訊

//封裝並發射彈幕

socket.emit(‘send-danmaku‘,JSON.stringify(yourFormatPackager(data));

//清除UI文字部分

$(‘#send-danmaku-field‘).value("");

});

tml"%?З`?

歡迎加入WEB前端互動交流群04,海量學習資料免費送

聊天室和彈幕的js實現感覺沒差

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.