首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Mysql实时消息?

PHP Mysql实时消息?
EN

Stack Overflow用户
提问于 2018-03-10 10:16:05
回答 2查看 220关注 0票数 0

我用PHP和MySQL编程了一个聊天客户端。目前的模式如下:

sendMessage.php

将消息插入到正确的chatRoom中

loadMessages.php

已经下载的消息被缓存,因此它只下载上一次下载消息ID后的新消息。

(例如,如果chatMsg1已经下载,但是有chatMsg2,那么loadMessages.php只返回chatMsg2)

一切正常,但我有点沮丧.我把它用于一个iOS应用程序,它每秒钟调用一次loadMessages.php。

即使没有新消息,php文件也执行2次查询:

  • 查询检查有效会话
  • 选择chatRooms并检查聊天室的最后一个messageId是否从未超过缓存的messageId(在本例中为no)

但是,每秒钟有2次查询。

,有什么办法可以防止这种情况吗?

例如,如果用户1处于活动状态,而用户2向他发送消息,则

  • 直接向用户1发送消息(而不是每秒钟提取数据)
  • 将消息保存在数据库中

..?

是否有可能仅用PHP或某种框架来实现这一点?还是我被迫使用谷歌的防火墙(?)还有像这样的东西

EN

回答 2

Stack Overflow用户

发布于 2018-03-10 10:34:16

对于这类应用程序,您需要能够通过websockets提供内容。换句话说,您需要创建像http://socketo.me/这样的php websocket服务器,其中内容是实时交付的。

票数 1
EN

Stack Overflow用户

发布于 2018-03-10 10:34:52

在sendMessage.php中使用推送通知还可以将数据保存到db。IOS应用程序在推送到达时调用loadMessages.php,因此如果下一天没有新消息,就不会调用,当应用程序得到推送通知时,它将调用loadMessages.php。此外,您可以包括发件人的名字,配置文件,图片或消息在推送。您可以使用防火墙或苹果推送服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49207885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档