当前位置:首页 » 网页前端 » web聊天室Ajax
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web聊天室Ajax

发布时间: 2023-03-23 07:17:51

㈠ asp.net用AJAX做的聊天室要怎么实现单独禁言功能

思路如下

  1. 数据库添加一个禁言李戚字段,根据这个字段是否禁言。

  2. 例如数据库字段为Speaking,如果值为1,则禁言该用户在聊天室发陆扒言,如哪悉陵果值为0,则允许发言。

  3. 管理员对所有用户禁言则把这个字段的所有用户字段设为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 两端都要自动几秒刷新信息。并记录最后刷新的时间。

其次,当单方发言,向服务器发送信息保存,并调取所有新信息,再记录新时间。