当将一行插入SQL Server表中时,如何触发向移动设备的推送通知?

问题描述 投票:1回答:2

我们的任务是在iOS和Android应用中实现推送通知。该应用程序的功能之一是聊天消息,因此我们希望在用户收到消息时推送通知。消息可以从Web应用程序生成,因此无论消息来源如何,都可以通过C#Web服务将聊天消息插入到Chat SQL表中。

在我的研究中,我发现PushSharp非常适合我们的C#后端-尽力避免必须支付推送通知服务的费用。我很难想象的是如何在将新消息插入数据库表时触发推送通知。

最佳做法是什么?我认为不是手动轮询新记录。

任何建议将不胜感激。

ios push-notification apple-push-notifications
2个回答
0
投票

您可以选择几种解决方案。有些取决于您对表的控制级别。这里有一些想法:

  1. 使用守护程序来运行脚本,该脚本定期检查新条目并在必要时发送推送。该脚本可以依赖一个元组id字段(可能是主键)来记录它检查的最后一个字段,然后从那里定期进行提取。您可以使用supervisemonit进行设置,但是还有许多其他解决方案可能更适合您的服务器。
  2. 更简单的解决方案是创建一个cronjob条目,该条目会定期触发上述脚本。
  3. 如果您不控制原始表,则可以在MySQL中创建一个TRIGGER,该记录将一条记录插入到一​​个单独的表中,您可以完全控制该表并可以进行轮询
  4. 如果您不想轮询(实际上,如果您有大量数据要高速传输,那是不可取的),则必须调查消息队列系统(例如RabbitMQ)或进入PUBSUB(我个人喜欢Redis PUB/SUB)。

没有关于当前架构的更多信息,很难为您提供更多详细信息或为您提供更好的解决方案。


0
投票

可能为时已晚,但对于偶尔来这里的新手,我建议尝试debezium,它消耗对数据库进行的每个行级更改的事件。仅显示已提交的更改,因此您的应用程序不必担心事务或回滚的更改。

© www.soinside.com 2019 - 2024. All rights reserved.