我用PHP和MySQL编写了一个聊天客户端。现在的模式如下:
sendMessage.php
将消息插入正确的chatRoom
loadMessages.php
已缓存已下载的邮件 因此,它仅下载自上次下载的消息ID以来的新消息..
(例如,如果已经下载了chatMsg1但是有chatMsg2,那么loadMessages.php只返回chatMsg2)
- - - - - - - -
一切正常,但我有点沮丧..我正在将它用于每秒调用loadMessages.php的iOS应用程序..
即使没有新消息,php文件也会进行2次查询:
但是,每秒仍有2个查询..
有没有办法防止这种情况?
例如,如果用户1处于活动状态,而用户2向他发送消息,则
...
是否可以仅使用PHP或使用某种框架来执行此操作? ...或者我被迫使用谷歌的火力棒(?)和类似的东西
答案 0 :(得分:1)
对于这类应用程序,您需要能够通过websockets提供内容。换句话说,您需要创建一个像http://socketo.me/这样的php websocket服务器,其中的内容是实时传送的
答案 1 :(得分:0)
在sendMessage.php中使用推送通知也将数据保存到db。 IOS应用程序在推送到达时调用loadMessages.php,因此如果下一天没有新消息将没有调用,并且当应用程序获得推送通知时,它将调用loadMessages.php。 另外,您可以在推送中包含发件人姓名档案图片或消息。 你可以使用firebase或apple push服务器。