㈠ asp.net用AJAX做的聊天室要怎麼實現單獨禁言功能
思路如下
在資料庫添加一個禁言李戚欄位,根據這個欄位是否禁言。
例如資料庫欄位為Speaking,如果值為1,則禁言該用戶在聊天室發陸扒言,如哪悉陵果值為0,則允許發言。
管理員對所有用戶禁言則把這個欄位的所有用戶欄位設為1則可。
㈡ php+ajax怎麼做web聊天室,就是類似QQ那樣的,求源碼
其實做這個不難完成,只要php學的可以,在懂一點ajax就能做出來了。如樓上說的,用ajax想伺服器端沒隔幾秒發送一次數據,1秒的時候效果最逼真(只是開銷有點大),然後後台讀取資料庫,再返回結果,就實現了。
具體可以參考:http://www.daixiaorui.com/read/12.html
有範例有效果,有源碼。可以去看看!祝你成功!!
㈢ 求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>
㈣ 百度HI,webqq,等網頁聊天室的實現技術!
可能用的是AJAX技術
如果按你說的話 不刷新應該是用的P2P技術
P2P網路通常用於通過Ad Hoc連接來連接節點。這個可以用於多種用途,各種檔案分享軟體已經得到了廣泛的使用。P2P技術也被使用在類似VoIP等實時媒體業務的數據通信中。
下面有一段文字供你參考
首先webqq沒是使用flash作為長連接代理。
其使用了yahoo的ajax工具包。
使用中,20秒進行一次http://web-proxy.qq.com/conn_s POST請求,內容為:
HTTP/1.1 200 Ok
Content-Type: text/html; charset=UTF-8
Cache-Control: private
Server: QQ/J.vn
Content-Length: 0
20秒一次,並且內容為空,的POST,這個應該是判斷用戶離線使用的。而並非取得任何新數據。
比較奇怪的,任何一個用戶發信息給正在使用WEBQQ的用戶,立刻WEBQQ用戶會自己,主動的發起一次對 http://web-proxy.qq.com/conn_s POST請求
來獲得新的聊天內容數據,內容如下:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: private
Server: TENCENT_HTTP_Server
Content-Length: 68
1034456174;17;3088;313033262;275062;09;0b;test123;1241812821;575540857;
聊天內容是test123,可以看到並未進行加密之類,不過這不再本文討論范圍,
我想知道的是,WEB QQ是如何即時的獲得有信息到來的這個「通知」讓客戶端主動的去發起請求去伺服器獲取數據?
我過了一遍代碼,絕不是簡單的輪詢之類,因為沒有任何延遲,如果是輪詢總會有延遲。而且看鏈接狀態也沒有顯式的長連接。
他頁面上有4個iframe
<iframe id="conn_frame1" name="conn_frame1" src="http://web-proxy.qq.com" style="display:none;"> </iframe>
<iframe id="conn_frame2" name="conn_frame2" src="http://web-proxy2.qq.com" style="display:none;"> </iframe>
<iframe id="chatlog" name="chatlog" src="" style="display:none;"> </iframe>
<iframe id="filelog" name="filelog" src="" style="display:none;"> </iframe>
應該是以某個iframe以某種方法與伺服器保持連接,這是如何實現的?
如何「通知」讓客戶端主動的去發起請求去伺服器獲取數據?
請到web.qq.com看一下實現後進行討論~
來自http://www.iqidi.com/Articles/2009-12-25%23374.htm可以去看看
還有一種說法是comet技術
見下網址http://www.ibm.com/developerworks/cn/web/wa-lo-comet/
㈤ 用ajax和php做了一個聊天室出現的問題
1, 你用的ajax是否不兼容ie呢?
2, 你碧滲用firefox瀏覽器看看,裝一握慧陪個firebug插件,看看你的請求是否有問題?
3, 你請求的ajax的url裡面加一個隨即的參數,這樣保證沒有緩存出現。
4, 在ie裡面的internet選項設置永不段蠢緩存。
㈥ 即時聊天軟體的原理,Web網頁的聊天又是怎麼實現的呢
就是試用ajax``其他就是比如我發一條信息給你``後台會在信息前面加上你的帳號名稱然後到時候你上線的時候就可以從資料庫中根據你的帳號去取得對應的信息`web聊天是這種實現的 而聊天軟體基本上也是這種原理
㈦ 使用AJAX製作聊天室的關鍵是什麼
沒看懂你說的什麼,不過可以簡單給你個思顫睜返路哈。
初始化一個聊天茄飢室。內有A B 兩早櫻個成員
首先 A B 兩端都要自動幾秒刷新信息。並記錄最後刷新的時間。
其次,當單方發言,向伺服器發送信息保存,並調取所有新信息,再記錄新時間。