您的位置:

php在线即时聊天,php即时聊天源码

本文目录一览:

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

请问PHP能否实现即时通讯?

可以的,但是运行的地方不能是虚拟主机,因为那些一般只有FTP文件管理+WEB控制面板,这种条件下基本上无法实现的,即使实现了,效果也不好

php和Android实现实时聊天

不知道你具体要做什么,我把即时通讯的原理跟你说一下吧(P2P的)。

首先,用户A输入自己的用户名和密码登录即时通讯服务器,服务器通过读取用户数据库来验证用户身份,如果用户名、密码都正确,就登记用户A的IP地 址、IM客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户A在 IM系统中的状态为在线。

其次,根据用户A存储在IM服务器上的好友列表,服务器将用户A在线的相关信息发送到也同时在线的即时通讯好友的PC机,这些信息包括在线状态、IP地址、 IM客户端使用的TCP端口号等,即时通讯好友PC机上的即时通讯软件收到此信息后将在PC桌面上弹出一个小窗口予以提示。

第三步,即时通讯服务器把用户A存储在服务器上的好友列表及相关信息回送到他的PC机,这些信息包括也在线状态、IP地址、IM客户端使用的TCP端口号等信息,用户A的PC机上的IM客户端收到后将显示这些好友列表及其在线状态。

接下来,如果用户A想与他的在线好友用户B聊天,他将直接通过服务器发送过来的用户B的IP地址、TCP端口号等信息,直接向用户B的PC机发出聊天 信息,用户B的IM客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户A的PC机,这样双方的即时文字消息就不通过 IM服务器中转,而是通过网络进行点对点的直接通讯,这称为对等通讯方式。

php怎么实现即时通讯

php实现实时通信一般有两种方式:socket或comet。

socket是比较好的解决方案,问题在于不是所有的浏览器都兼容,服务器端实现起来也稍微有点麻烦。

comet(基于HTTP长连接的"服务器推")实现起来更加方便,而且兼容所有的浏览器。

comet也有好几种实现方式,如iframe, http long request等。