Ajax 自动应答器短信网关Yii2

Ajax 自动应答器短信网关Yii2,ajax,yii2,cron-task,Ajax,Yii2,Cron Task,我是Yii2的新手,现在我将Yii2与advance模板一起使用 在我的项目中,我需要我的应用程序可以使用AJAX读取数据库,也可以在后台任务中运行。这就像一个老太婆的工作,但我不知道怎么做 无论如何,我想集成sms网关服务,所以当我创建一些请求时,它会向用户发送sms,用户可以向应用程序发送具有某种格式的sms。和短信从用户,它将被用来做另一个行动在我的项目 毕竟,我只能从我的应用程序向用户发送短信,但不能读取从用户发送的短信,这样我就无法触发另一个操作 在Yii2论坛上也一样 我得到了答案。

我是Yii2的新手,现在我将Yii2与advance模板一起使用

在我的项目中,我需要我的应用程序可以使用AJAX读取数据库,也可以在后台任务中运行。这就像一个老太婆的工作,但我不知道怎么做

无论如何,我想集成sms网关服务,所以当我创建一些请求时,它会向用户发送sms,用户可以向应用程序发送具有某种格式的sms。和短信从用户,它将被用来做另一个行动在我的项目

毕竟,我只能从我的应用程序向用户发送短信,但不能读取从用户发送的短信,这样我就无法触发另一个操作


在Yii2论坛上也一样

我得到了答案。我使用无限循环,睡眠时间为1秒。因此,它将每秒钟检查一次数据库,执行检查传入短信和自动回复短信的操作

while (true) {

 /*Other script that will read sms , and reply sms*/ 

  sleep(1);
  //Or use usleep to use sleep in microsecond

}

有关

的更多信息,请发布您用于尝试接收短信的部分代码。此外,您使用的短信提供商必须为您提供接收短信的代码/指南。我在我的项目中使用gammu服务。毕竟,我只能从我的Yii2应用程序发送短信。和短信从用户,它保存到数据库,但我想,每一个新的短信将触发另一个功能在我的Yii应用。。是否可以这样做??现在看来您已经解决了主要问题,并将传入的SMS存储到db中,您可以使用传入SMS接收功能触发“另一个功能”,或者,构建一个yii命令,并使用cron按计划的时间间隔运行它,以扫描所有新传入的sms消息,并为每个消息触发相关操作。我已尝试使用yii命令,并仅每1分钟以最小的计划时间扫描传入的sms。我怎样才能实时扫描它,这样我就可以每隔1秒或10秒扫描一次?你能帮我吗??与使用cron作为触发器不同,您应该创建自己的php循环,不断检查sql表中的最后一个id(比如每1到3秒检查一次,以降低性能影响)。如果更改了最后一个id,请读取“增量”消息,并以仅1秒到3秒的最大延迟执行操作。同样,您可以以性能为代价进一步减少此时间,但是更好的方法是从脚本生成触发器,该脚本首先将sms保存到db(如果您可以解释为什么它不这样做,那就太好了)