我正在用php创建一个聊天应用程序。
目的: 当user1邀请 user2 时, user2 想要获取 user1 邀请他的警告或弹出消息。
我所做的是 -
当 user1 邀请时,该消息存储在数据库中。在用户方面我用来检查是否 数据库是否更新。如果数据库是更新我用于显示警报。这是我在php和javascript上完成的,但不是一直都在工作。
这是一个好方法吗?还有其他方法吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
所有客户端都可以使用jquery并定期发送以下请求:
function checkIfIAmInvited()
{
jQuery.ajax({
type: "POST",
url: "some.php",
data: "name=currentUser&",
success: function(msg){
if(msg.indexOf('uninvited') !== -1 )
{
alert( "You have been invited by " + msg );
//Method to do stuff once I am invited
iAmInvitedMethod();
}
});
}
要定期调用上面的代码,您可以在jquery / javascript中使用以下代码。这将定期拨打电话并将响应发回给您。一旦响应没有包含“未经邀请的”字符串,它就会发出警报并调用post方法函数。
可以使用以下代码重复调用。
window.setInterval("checkIfIAmInvited()", 5000);
如果有任何邀请,这将每5秒检查一次。或者为了更好的控制,可以使用像Timer这样的jquery插件重复执行某些东西。
答案 2 :(得分:1)
使用(至少)两次数据库旅行是处理实时聊天的一种糟糕方式。如果你正在做一些存储聊天又称msging系统,那很好。但是考虑到你只需要坚持一两秒钟的文本,我就会在内存解决方案中使用SQL-Lite或其他。它会在您的服务器上更快更容易。
答案 3 :(得分:1)
对于聊天和即时消息系统,您应该研究使用Comet等基于Push的技术。 this thread中的更多信息:使用jquery的实现。