最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
thinkphp 实现在线聊天功能的例子
时间:2022-06-25 02:24:58 编辑:袖梨 来源:一聚教程网
你想为你的博客或者网站添加的在线聊天功能,为你的用户提供技术支持,或者不仅仅是客服功能,让你的用户能够相互交流,增强网站或者博客互动功能,这里为大家介绍1个为博客或者网站打造的聊天工具,只要您懂得thinkphp就能看得懂此段代码。主要实现的方法是thinkphp+ajax,不在赘述直接贴出代码:
数据库结构:
think_msg 表用来存储聊天记录
DROP TABLE IF EXISTS `think_msg`;
CREATE TABLE IF NOT EXISTS `think_msg` (
`id` int(40) NOT NULL auto_increment COMMENT '信息数目',
`content` text character set utf8 NOT NULL COMMENT '信息内容',
`time` int(50) NOT NULL COMMENT '发送信息时间',
`sender` varchar(20) character set utf8 NOT NULL COMMENT '发送信息人',
`timee` varchar(20) NOT NULL,
`tosend` varchar(50) character set utf8 NOT NULL COMMENT '接收人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
think_user表 用来存储用户的信息
DROP TABLE IF EXISTS `think_user`;
CREATE TABLE IF NOT EXISTS `think_user` (
`id` mediumint(6) NOT NULL auto_increment,
`nickname` varchar(25) NOT NULL,
`dept_id` smallint(3) NOT NULL,
`account` varchar(20) NOT NULL COMMENT '账号',
`pwd` varchar(50) NOT NULL COMMENT '密码',
`status` int(2) NOT NULL COMMENT '状态:‘0’不在线,‘1’在线,‘2’隐身,‘3’忙碌',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
html代码:
{$vo.sender}:
{$vo.content}
[f:1][f:2][f:3][f:4][f:5][f:6][f:7][f:8][f:9][f:10]
[f:11][f:12][f:13][f:14][f:15][f:16][f:17][f:18][f:19][f:20]
php执行代码:
Class IndexAction extends CommentAction{
//登陆默认页面,因继承commentAction故不显示
public function index(){
$this->display();
}
//利用ajaxreturn以JSON方式返回聊天内容数组
public function ajax(){
$data=array();
$Model = new Model();
$data['content']=$_POST['content'];
$data['time']=time();
$data['timee']=date('Y-m-d H:i:s',time());
$data['sender']=session('account');
$dd=M(msg)->data($data)->add();
if($dd){
$dataa=M(msg)->order('id desc')->limit('10')->select();
$this->ajaxReturn($dataa);
}
}
//刷新时获取最新十条聊天内容和在线用户
public function homePage(){
$this->msg=M(msg)->order('id desc')->limit('10')->select();
$this->user=M(user)->where(array('status'=>1))->select();
$this->display();
}
//即时返回最新十条聊天内容
public function fresh(){
$data=M(msg)->order('id desc')->limit('10')->select();
$this->ajaxReturn($data);
}
//即时返回在线用户
public function freshUser(){
$dat=M(user)->where(array('status'=> 1))->select();
$this->ajaxReturn($dat);
}
}
?>
效果图:
源码下载:https://img.111com.net/get_pic/down/thinkphp(www.111com.net)ajax.zip
相关文章
- 人们熟悉的寄居蟹属于以下哪种分类 神奇海洋11月21日答案 11-21
- 第五人格11.22共研服有什么更新 11月22日共研服更新内容介绍 11-21
- 原神恰斯卡怎么培养 11-21
- 无期迷途四星装束是谁 11-21
- 王者荣耀帝丹高中校服怎么获得 11-21
- 光遇姆明季后续版本怎么玩 11-21