| 网站首页 | 建站学院 | 资源下载 | 建站教程 | 图片素材 | 网贝社区 | 
您现在的位置: 网贝建站 >> 建站学院 >> PHP技术 >> php应用 >> 正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
没有相关文章
聊天室技术       ★★★★
聊天室技术
作者:佚名 文章来源:网海之贝 点击数: 更新时间:2004-9-1 23:08:33

聊天室技术(三) -- 在线人数

我根据网易聊天室的在线人数的方法,显示当前的在线人数,代码解释如下: 

1 登陆时建立在线人名单的数组,放在body后面 

<? 
//锁定在线人数文件 
while(file_exists($useronlinelock)){$pppp++;} 
fclose(fopen($useronlinelock,"w")); 

//读入在线人名单 
$useronline = file($useronline); 
unlink($useronlinelock); 

//建立数组 list 
print("document.writeln("list=new Array("); 
$k=count($useronline); 
if($k>1) 

for($i=0;$i<($k-1);$i++) 

$usercurrent = split($split,$useronline[$i],99); 
// 姓名+, 
print("'$usercurrent[0]',"); 

$i=$k-1; 
// 处理最后一个姓名 
$usercurrent = split($split,$useronline[$i],99); 
print("'$usercurrent[0]'"); 

// 数组结束 
print(")");n"); 
?> 

2显示在线人数的js 
document.writeln('[在线人数<font color=red>'+count+'</font>]<br>'); 
document.writeln("[<a href="javascript:parent.cs('所有人')">所有人</ 
a>]<br>"); 
document.writeln("<font class='p9'>"); 
var j,name,club; 
for(var i=0;i<list.length;i=i+1) 

if(list[i]!=null){ 

//显示每个在线人的名字 
document.writeln("<a href="javascript:parent.cs('"+list[i]+"')" titl 
e='"+list[i]+"'>"+list[i]+"</a><br>"); 


this.r.document.writeln('</font><hr>'); 


3改变聊天对象 
function cs(name) 

if(this.d.document.=null)return; 
if(name=='所有人') 

this.d.add('所有人'); 
this.d.document.inputform.talkto.value='所有人'; 

//改变焦点 
this.d.document.inputform.msg.focus(); 
return; 

for(var i=0;i<list.length;i=i+1) 

if(list[i]==name) 

//更改发送的谈话对象 
this.d.document.inputform.talkto.value=list[i]; 
this.d.document.inputform.msg.focus(); 
return; 

//错误 
alert('此用户已离线或已改了昵称。'); 

4删除一个用户 
function del(str) 

for(var i=0;i<list.length;i=i+1) 
if(list[i]==str) 

delete list[i]; 
count--; 


5增加一个用户 
function add(str1,str2) 

var l=list.length; 
for(var i=0;i<list.length;i=i+1) 

//如果已经在数组里面则返回 
if(list[i]==str1) 
return; 

//增加一个用户 
list[l]=str1; 
count++; 

6更新聊天人数的方法,定时器的使用 
var timerID=null; 
var timerRunning=false; 

function stop() 

//停止 
if(timerRunning)clearTimeout(timerID); 
timerRunning=false; 

function start() 

stop(); 
//调用更新在线人数的程序 
write1(); 

function write1() 

... ... ... ... 
//设定更新时间, 
timerID=setTimeout("start()",30000); 
timerRunning=true; 


这种方法比较简单的实现了在线人数的显示,当然也可以使用读入在线人文件的方法显示在线人数,不过在改变聊天对象是会比较麻烦. 

 

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)