A. 求php韩顺平讲ajax web多人离线聊天的源代码
***userList.php*****
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<title>用户列表</title>
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache">
<metahttp-equiv="expires"content="0">
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="Thisismypage">
<metahttp-equiv="content-type"content="text/html;charset=utf-8"/>
<scripttype="text/javascript">
<!--
window.resizeTo(200,400);
functionabc(obj){
obj.style.color="red";
obj.style.cursor="hand";
}
functionabc2(obj){
obj.style.color="";
}
//跳出一个聊天的页面
functionabc3(obj){
varname=obj.innerText;
window.open("chatRoom.php?name="+encodeURI(name),"_blank");
}
-->
</script>
</head>
<body>
好友列表<br>
<liid="li1"onmouseover="abc(this)"onclick="abc3(this);"onmouseout="abc2(this)">费尔普斯</li>
<liid="li2"onmouseover="abc(this)"onclick="abc3(this);"onmouseout="abc2(this)">谢忠君君</li>
<liid="li3"onmouseover="abc(this)"onclick="abc3(this);"onmouseout="abc2(this)">姚明</li>
</body>
</html>
***chatRoom.php****
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<?php
$name=$_GET['name'];
//空格.
$name=trim($name);
//从session
session_start();
$yourname=$_SESSION['username'];
?>
<title>聊天室</title>
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache">
<metahttp-equiv="expires"content="0">
<metahttp-equiv="content-type"content="text/html;charset=utf-8"/>
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="Thisismypage">
<scripttype="text/javascript">
<!--
window.resizeTo(400,400);
window.setInterval("getMsg()",10000);
//定义一个ajax引擎
varxmlHttp;
functionsendMsg(){
//根据情况建立ajax引擎
if(window.ActiveXObject){
xmlHttp=newActiveXObject("Microsoft.XMLHTTP");
}else{
xmlHttp=newXMLHttpRequest();
}
if(xmlHttp){
varreq="MessageController.php?getter=<?phpecho$name;?>&msg="+document.all.con.value;
xmlHttp.open("get",req,true);
//指定返回的函数
xmlHttp.onreadystatechange=chuli;
//发送
xmlHttp.send(req);
varsendMsg=document.all.con.value;
document.all.mytextares.value+="你说:"+sendMsg+" ";
}
}
functionchuli(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
//!!!
}
}
}
varxmlHttp2;
//每隔一定时间从服务器得到属于自己的消息
functiongetMsg(){
//根据情况建立ajax引擎
if(window.ActiveXObject){
xmlHttp2=newActiveXObject("Microsoft.XMLHTTP");
}else{
xmlHttp2=newXMLHttpRequest();
}
if(xmlHttp2){
varreq="GetMessageCl?getter=<?phpecho$yourname;?>&sender=<?phpecho$name;?>";
xmlHttp2.open("get",req,true);
//指定返回的函数
xmlHttp2.onreadystatechange=chuli2;
//发送
xmlHttp2.send(req);
}
}
functionchuli2(){
if(xmlHttp2.readyState==4){
if(xmlHttp2.status==200){
//取出消息的内容
varmesCon=xmlHttp2.responseXml.getElementsByTagName("msg");
vartimes=xmlHttp2.responseXml.getElementsByTagName("msgTime");
if(mesCon[0].firstChild.data!="null"){
//将信息显示到文本预
for(vari=0;i<mesCon.length;i++){
vargetMsg=mesCon[i].firstChild.data;
document.all.mytextares.value+="<%=name%>"+"说:"+getMsg+" ";
}
}
}
}
}
-->
</script>
</head>
<body>
<center>
我的聊天室(您在和<fontcolor="red"><?phpecho$name;?></font>聊天)<br>
<textarearows="10"id="mytextares"cols="50"></textarea><br/>
<inputtype="text"id="con">
<inputtype="button"onclick="sendMsg();"value="发送">
</center>
</body>
</html>
B. 谁能告诉我用php如何实现单用户聊天室系统到多用多房间聊天室系统的转变请告诉我详细的代码(不要让我...
朋友,我来告诉你答案!实现“聊天室对象”,“房间对象”,“用户对象”
聊天室对象中包含房间对象池和用户对象池
在聊天室中开启不同房间时,只是在房间对象池中新实例化一个房间对象。
在用户进入这个聊天房间时,在房间对象的用户对象池中引用聊天室用户对象池中用户对象。
用户对象池中包含一系列实例化的用户对象。每个用户对象包含一个聊天室列表对象,聊天室列表包含用户进入时间,最后一次发言时间等信息
实现用户长时间未操作与正常退出的用户对象移除操作,实现房间的发言操作延长时长即可。
在聊天室用户对象池中维护用户当前已登录的聊天房间数、登录时间等信息
C. 一套完整的视频直播聊天室源码怎么开发
视频直播聊天室源码怎么开发?首先,我们将其分为五部分:采集、编码,传输, 服务器处理,解码,渲染。
1、采集:采集就是我们平时“开摄像头录像”的部分,用户通过摄像头将视频传递到网络上,这里是比较简单的一部分,只是适配起来会比较麻烦,毕竟手机种类众多,但本身的技术要求和其他模块比起来还是简单很多的。
2、前处理:前处理阶段是视频直播聊天室源码在将视频传输到服务器之前要做好的处理工作,包括美颜算法、视频模糊、添加水印等,都在这一环节做成
3、编码:为什么要将视频进行编码呢?因为原音视频文件是很大的,会占用很大的带宽,只有在编码完成后,视频文件才会变得小一些,这样会更节省带宽。
难点在于:分辨率,帧率,码率,GOP等参数的平衡,视频直播聊天室源码如何使音视频文件又小又清晰,这是个问题
4、传输:将主播端文件传输给服务器
5、服务器处理:在服务器完成对文件的检测(包括鉴黄等)后,将文件通过CDN发送到观众的手机端。
6、解码和渲染:交给用户自己的手机吧。
这是一个视频直播聊天室源码的工作步骤,我们需要回避很多坑才能做好视频直播聊天室源码的开发,如有需要帮助的地方,可以追问我。
D. 有没有当前最好用开源的聊天室源码
实在是抱歉的,当天来说真的是没有最好用的开源的聊天室源码
E. PHP聊天室
可以看下socket类型的php框架,比如swoole和workerman,workerman下面有个
workerman-chat
php聊天室和php小蝌蚪聊天室的demo可以下载源码参考参考
F. php+ajax怎么做web聊天室,就是类似QQ那样的,求源码
其实做这个不难完成,只要php学的可以,在懂一点ajax就能做出来了。如楼上说的,用ajax想服务器端没隔几秒发送一次数据,1秒的时候效果最逼真(只是开销有点大),然后后台读取数据库,再返回结果,就实现了。
具体可以参考:http://www.daixiaorui.com/read/12.html
有范例有效果,有源码。可以去看看!祝你成功!!
G. PHP如何实现聊天室
1,配置文件
复制代码代码如下:
<?php
define('PATH',dirname($_SERVER['SCRIPT_NAME'])); //聊天室目录
define('CHAT_NAME','PHP聊天室'); //聊天室名称
define("MESS", "mess.txt"); //聊天信息
define("PERSON", "person.txt"); //在线人名单
define("RETIME",3); //刷新时间
define("LINE",11); //公共窗口显示的行数
define("PRLINE",5); //私聊窗口显示的行数
define("MAX",50); //聊天室人数限制
define("MAXTIME",600000); //最大不发言时间,单位是毫秒
define("WELCOME","<font color=blue>欢迎光临".CHAT_NAME.",请遵守聊天室规则,不要恶意刷新,不要使用不文明用语。</font>"); //欢迎语
?>
2,公共函数文件
(1)chklogin()函数检查用户昵称是否重复。参数$user是登录用户的昵称。当函数返回值为True时,昵称不可用;返回值为False时,昵称可用。
复制代码代码如下:
function chklogin($file,$user){
$boo = false;
if(file_exists($file)){
$userarr = file($file);
/* 判断昵称是否重复 */
foreach($userarr as $value){ //判断昵称是否重复
$tmparr = explode('#',$value); //使用“#”作为分隔符来拆分字符串
if($user == $tmparr[0]){ //如果用户数组中包含此用户
$boo = true;
break;
}
}
}
return $boo;
}
(2)addlogin()函数将登录的用户昵称写入文件中,保存格式为:昵称#IP#性别,参数$file是保存的文件地址,$user是用户昵称,$ip是登陆IP,$sex表示用户性别。
复制代码代码如下:
function addlogin($file,$user,$ip,$sex){
$tmp = $user.'#'.$ip.'#'.$sex.chr(13).chr(10); //chr(13) 是一个回车,Chr(10) 是个换行符,chr(32) 是一个空格符
$fp = fopen($file,'a'); //写入方式在文件末尾追加信息
$boo = fwrite($fp,$tmp);
fclose($fp);
return $boo;
}
(3)storeuser()函数的作用是将用户信息存为一个数组。格式为“用户名,用户性别”,参数$file是用户列表文件。代码如下:
复制代码代码如下:
function storeuser($file){
$tmparr = file($file); //将文件内容写入数组
$userarr = array(); //创建数组
foreach($tmparr as $value){ //循环输出数组内容
$tmparr = explode('#',$value); //使用#拆分字符串
$userarr[] = $tmparr[0].','.$tmparr[2]; //将用户名和用户性别保存到新数组中
}
return $userarr;
}
(4)addmess()函数将发言内容写入文件中。参数$file是保存的文件地址,$mess是要保存的内容
复制代码代码如下:
function addmess($file,$mess){
$fp = fopen($file,'a'); //以追加的形式打开文件
$boo = fwrite($fp,$mess.chr(13).chr(10)); //将信息写入文件中
fclose($fp); //关闭文件
return boo;
}
(5)deluser()函数的作用是删掉用户。参数$file是保存的文件地址,$user是要删除的用户
复制代码代码如下:
function deluser($file,$user){
$tmparr = file($file); //将文件内容写入数组
$rearr = array(); //创建数组
foreach($tmparr as $value){ //循环输出数组内容
$tmp = explode('#',$value); //使用#拆分字符串
if($tmp[0] != $user){ //如果变量中的用户名和当前用户不相等
$rearr[] = $value; //将该用户信息保存到新数组中
}
}
$fp = fopen($file,'w+'); //以只写的方式打开文件
foreach($rearr as $value){ //循环数组
fwrite($fp,$value); //写入数组内容
}
fclose($fp); //关闭文件
}
(6)getRows()函数的作用是返回文件的行数,参数$file是文件名
复制代码代码如下:
function getRows($file){
if(file_exists($file)){ //如果文件存在
$fl = file($file); //将文件按行写入数组
return count($fl); //求出数组长度并返回
}else{
return 0; //如果文件不存在,返回0
H. 哪里有语音聊天室PHP源码下载
一般开源的应用github上比较多,还有国内的开源中国。
I. php聊天室不需要数据库的源码
http://download.csdn.net/detail/ttcc2010/3033390之前我用过,不知道现在可不可以,你去试试
J. 基于PHP+MYSQL聊天室如何实现只显示用户登陆之后的聊天内容
显示用户登陆之前的聊天内容是因为公用缓存的问题,比如每隔一分钟缓存一次,然后每个用户要的内容都从缓存里取,而不是都查库,你可以根据发表时间和登录时间做个比较再输出