Php 在iOS聊天应用程序中刷新聊天信息

Php 在iOS聊天应用程序中刷新聊天信息,php,ios,mysql,sql,swift,Php,Ios,Mysql,Sql,Swift,我目前正在创建一个应用程序,其中2个用户将能够相互聊天。具体来说,它将是一款以Swift为主要语言的iOS应用程序。网络上的大多数聊天应用程序教程都建议使用Firebase,但我个人希望使用MySQL,因为我的其他数据库活动都是使用MySQL完成的。我也不想使用任何现有的库,我想自己做这一切 我只对使用MySQL的效率有疑问。访问数据库时,我使用swift创建一个URLSession,然后使用一个指向后端PHP脚本的预定链接来处理数据库访问。唯一的问题是,我的聊天功能的应用程序将不得不刷新消息,

我目前正在创建一个应用程序,其中2个用户将能够相互聊天。具体来说,它将是一款以Swift为主要语言的iOS应用程序。网络上的大多数聊天应用程序教程都建议使用Firebase,但我个人希望使用MySQL,因为我的其他数据库活动都是使用MySQL完成的。我也不想使用任何现有的库,我想自己做这一切

我只对使用MySQL的效率有疑问。访问数据库时,我使用swift创建一个URLSession,然后使用一个指向后端PHP脚本的预定链接来处理数据库访问。唯一的问题是,我的聊天功能的应用程序将不得不刷新消息,以查看其他用户发送给你的消息在一秒钟左右。我不知道该怎么做。我目前的想法是使用一个计时器,每隔一秒左右调用一次URLSession数据任务,从数据库中检索新消息,然后将它们显示在用户屏幕上。这是有效的还是有更好的方法?我觉得这会在某种程度上阻碍MySQL的发展,并且会降低数据库的效率。有没有更好的办法


提前谢谢

如果你真的想用MYSQL来传递信息,那么你可以看看@TekShock关于使用苹果推送通知的评论。你也可以使用,但它是不有利的

我个人不会仅仅因为有更多更好的选择就使用MYSQL来传递消息。您可以从诸如XMPP和MQTT之类的消息传递协议中选择来传递消息。我个人在过去曾使用过MQTT,并且认为它非常简单,可以满足您的需要。它有两个非常好的swift客户,比如。您将让每个设备订阅并发布到一个房间,以便它可以接收和发送消息。因此,在您的情况下,您可以让用户a订阅房间1,用户B订阅同一房间,他们都将接收发布到该特定房间的所有消息

然后,如果您想将传递的消息存储到MYSQL数据库,那么当用户打开应用程序备份时,您可以加载他们以前的所有消息。您还可以使用Sqlite或Realm在本地存储这些消息,而不是在线存储

编辑:


如果你考虑的话,缩放比MQTT也很简单。您可以在应用程序和MQTT代理之间放置一个队列系统,可能类似于Apache Kafka,这是您的最佳选择。

我会使用PushNotifications,因为它不仅会自动推送到应用程序,而且不需要计时器,而且在应用程序未打开时也会发送通知。我将查看MQTT。我还认为使用MySQL和必须不断执行SQL命令是没有效率的。谢谢你的帮助