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聊天室如何實現只顯示用戶登陸之後的聊天內容
顯示用戶登陸之前的聊天內容是因為公用緩存的問題,比如每隔一分鍾緩存一次,然後每個用戶要的內容都從緩存里取,而不是都查庫,你可以根據發表時間和登錄時間做個比較再輸出