博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
聊天室和弹幕的js实现感觉没差
阅读量:5086 次
发布时间:2019-06-13

本文共 1201 字,大约阅读时间需要 4 分钟。

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,海量学习资料免费送

转载于:https://www.cnblogs.com/xsns/p/6667905.html

你可能感兴趣的文章
理解oracle中连接和会话
查看>>
两种最常用的Sticky footer布局方式
查看>>
Scrapy实战篇(三)之爬取豆瓣电影短评
查看>>
HDU 5510 Bazinga KMP
查看>>
[13年迁移]Firefox下margin-top问题
查看>>
Zookeeper常用命令 (转)
查看>>
Java程序IP v6与IP v4的设置
查看>>
RUP(Rational Unified Process),统一软件开发过程
查看>>
数据库链路创建方法
查看>>
Enterprise Library - Data Access Application Block 6.0.1304
查看>>
重构代码 —— 函数即变量(Replace temp with Query)
查看>>
Bootstrap栅格学习
查看>>
程序员的数学
查看>>
聚合与组合
查看>>
jQuery如何获得select选中的值?input单选radio选中的值
查看>>
设计模式 之 享元模式
查看>>
如何理解汉诺塔
查看>>
洛谷 P2089 烤鸡【DFS递归/10重枚举】
查看>>
15 FFT及其框图实现
查看>>
Linux基本操作
查看>>