gpt4 book ai didi

php - Yii 的消息系统实现

转载 作者:行者123 更新时间:2023-12-04 06:03:26 25 4
gpt4 key购买 nike

这已经在很多网站上实现了,比如 odesk 左右。我在想的是实现一个消息发送方案,通知用户他们已经收到消息。

例如

您向我发送消息,我将看到消息从绿色变为红色图标。显然,我们需要一个数据库表来存储发送者 ID 接收者 ID 等等,但是我们如何以用户不需要点击刷新按钮的方式实现它。

我是 C# 背景下的网络新手,所以不知道很多方法。

我正在 Yii 中开发它。很少有建议会很棒

最佳答案

您可以使用简单的 periodic refresh 来做到这一点。 javascript 方法。

在具有消息指示器的 View 中是这样的:

<?php Yii::app()->clientScript->registerScript('autoupdate-div-inbox-update',
"setInterval(function(){
// do an ajax call to server to check for new messages
// using jquery's ajax method
$.ajax({
url: 'http://example.com/index.php?r=controller/action',// this is the url that will check for new messages for the current user
success: function(data) {// data is the data returned from the server
if(data){
// update your new message div
// you can show your red icon here
}
}
});
return false;
},1000);"
);
?>

所以发生的事情是 setInterval 方法每 1000 毫秒执行一次函数,并且该函数使用 ajax 检查新消息。

如果您不了解 yii 中的 ajax,请检查 Controller 操作的以下内容:
public function actionMessages(){
// check for new messages in the db
$xyz = checkMessage();
// assuming checkMessage returns the number of new messages if any or false if none
// whatever we echo will be available to the javascript we wrote in the data variable
echo $xyz;
}

阅读有关 timing methods in javascript 的更多信息.

这种模式也称为轮询,还有其他流行的方法,如 长轮询 , 和 服务器推送 ,我不是很熟悉,但在决定模式之前你也应该检查一下。

希望这会有所帮助,如果有的话,请澄清。

关于php - Yii 的消息系统实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8668245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com