本文目录一览:
- 1、怎样使用php设置站内信功能,有什么函数么?
- 2、PHP站内信功能怎么设计
- 3、php+mysql 站内信功能怎么设计更合理?
- 4、php如何实现站内消息提示功能?
- 5、php 站内信提醒怎么做???
怎样使用php设置站内信功能,有什么函数么?
这是个功能,不是一个函数能解决的,PHP也不存在这样的功能,需要程序员编写代码开发。
首先要你需要建立一个数据库表,用来存放站内信的相关信息,然后用户使用站内信功能的时候去数据库查询和自己有关的站内信(比如说自己发送的,别人发给你的等等),这属于比较简单的功能开发。
PHP站内信功能怎么设计
情况一:无需实时聊天
这种情况可以采用简单粗暴的方法,数据库直接读写消息记录,已读/未读用一个状态码控制即可,稍微高级一点可以用Redis做消息推送,具体方法不作详细介绍,百度一搜一大把
情况二:实时聊天
沿用以上笨办法,web页面做一个定时器,每隔一段时间请求数据库;当然,Redis也可以轻松办到。如果不嫌麻烦可以采用workerman框架,socket通信专为在线聊天和直播流设计的
php+mysql 站内信功能怎么设计更合理?
这个功能,你可以参考微博的推送思路。
比如你关注了很多明星(千万级大V),他们发的每条微博会进入到“我的首页”。比如某个明星发了条微博abc,你在“我的首页”里看到的"abc"并不是读自明星微博个人的数据库,而是来自“我的首页”里一个专门的数据集合。
通俗的讲,这个数据集合是完全属于你个人的,你所关注的每个人,当他们发微博时,会同步“推送”到你自己个人的这个“数据集合”里。
那么问题来了,千万级大V,每发一条微博,就要同步推给千万个粉丝,生成千万条数据吗?NO,微博根据用户活跃度等一系列算法,将用户分成不同梯队,一批一批的推送,例如一个近30天都没登录过的用户,自然就会被划到较迟推送的那一批里。这样做是为了分流服务器负担。
但不同产品对于数据设计有不同的思路,你这个公用一条站内信,我的建议是,建个公共站内信统一变量(例如letter=20160514),可以保存到用户的cookies里。
当用户访问页面时,程序首先将这个变量值和cookies里保存的变量对比,相同则略过,不同则进行读取相应的公共站内信,保存到自己的“收件箱”里。
这样可以使原本需要同步推给千万用户一条站内信的工作,由主动推送变成被动发送。用户上线访问了,对比、发送,这种工作显然要大大减小了服务器压力。
读取消息也是,反馈生成一条数据写到数据库里就好了。
php如何实现站内消息提示功能?
1、全局js里面,加定时ajax请求getmsg.php
2、在getmsg.php里面,逻辑大致为:获取新消息数据(含html、链接地址等),新消息在数据库表中标识为旧消息,新消息数据写为json格式并输出,退出php。
php 站内信提醒怎么做???
给你提供一个简单的思路 !其实你的思路有些片面了 真正完善的做法 不应该是这样的哦!
你可以建立两张表 收信箱 发信箱! 当用户A给用户B 发送一个消息之后 同时对两张表执行insert 操作!初始状态为 未读!
用户B 只要实时的 用js去请求 一个固定的页面 假使 此页面定为 Msg.State.php (功能呢 主要是获取当前用户的消息数目 状态等等便于 实时显示) js设定时间 每20秒去请求一次 返回未显示的消息数目 用于前台显示
用户B 查看消息的时候需要新开页面 这个页面暂定 check.msg.php 用于查看 消息 主要功能为更改消息状态 删除 未读 已读 下面主要是针对 消息状态的处理了 用户B 可以对用户A的消息执行删除操作 但系统消息不可被删除 (可以处于删除状态) 当用户B 查看消息的时候 将此消息标记为已读 此时可以js 去再次请求 Msg.State.php页面 传出动作 update 去执行 update操作 更改消息状态 并尝试刷新 check.msg.php页面
下面给出 js请求页面的实现方法!至于实例化 ajax的对象我就不写了
var ajax=null;
function show(){
var hello_obj=document.getElementById("hello");
ajax=createAjax();//初始化ajax对象
ajax.onreadyStateChange=function(){
if(ajax.readyState==4){
if(ajax.status==200){
var data=ajax.responseText;
hello_obj.innerHTML=data;
}else{
alert("页面请求失败");
}
}
}
ajax.open("post","Msg.State.php",true);//打开服务器 指定传递方式为post
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded ");这个是发送页头
ajax.send("参数=用户编号");//发送数据
}
/script
input type="button" onClick="show()" value="request"
div id="hello" style="width:500; height:200; background-color:#FFFF00"/div