聊天室和弹幕的js实现感觉没差
2017-04-05 00:00
239 查看
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,海量学习资料免费送
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,海量学习资料免费送
相关文章推荐
- 实现使用Websocket通讯的聊天室——Node.js摸石头系列之六
- 【2012年最新原创AJAX案例,重磅推出】1、使用ajax+js+json+dom+php+mysql实现超强 Web聊天室V2.0
- AngularJS+Node.js实现在线聊天室
- Node.js+Socket.IO实现的WebSocket群聊天室源码
- js实现弹幕效果
- 感觉很流畅的js实现的键盘控制(带惯性)
- Node.js websocket使用socket.io库实现实时聊天室
- 使用node.js + socket.io + redis实现基本的聊天室场景
- 使用node.js和socket.io实现多人聊天室
- Node.js利用Net模块实现多人命令行聊天室的方法
- ajax+js+json+dom+php+mysql实现一个聊天室
- node.js+socket.io 实现一个web聊天室
- 【转载】Node.js + WebSocket 实现的简易聊天室
- AngularJS+Node.js实现在线聊天室
- node.js+websocket实现简易聊天室
- Ajax+js+dom+php+mysql实现聊天室(部分)
- Node.js + WebSocket 实现的简易聊天室
- 有这样写JS的同学吗?感觉很不地道,放上来肯定会被喷的。里面还插入了php代码,但是我需要的功能都实现了!哇哈哈@
- 使用node.js + socket.io + redis实现基本的聊天室场景
- Node.js websocket 使用 socket.io库实现实时聊天室