我一直想知道是否有可能创建一个代码块(可能是php代码),这些代码将在向数据库提交某个更改时执行。
例如,聊天应用程序。当用户发送消息时,它会向表中添加消息,然后我想强制所有其他用户读取这个新值(而不是每隔100ms发送一次AJAX请求来检查是否有新消息)
我记得有些东西涉及node.js和其他类型的DB而不是mysql。如果这是唯一的解决方案,它是否可以与普通的mysql数据库一起使用?
提前致谢!
答案 0 :(得分:1)
是的,MySQL支持triggers,但它们几乎不受其他数据操作的限制。因此,您仍然需要向您的javascript客户端发送一些通知
使用websocket或comet进行客户端通知的更好方法,允许服务器从message-queue推送通知。
您没有详细介绍您的编程环境,因此我将留下您按照上面给出的标记链接,并研究使用这些常规方法的相应工具和框架。
重新评论:
对于PHP,这是一个示例“推送”聊天应用程序: http://www.aljtmedia.com/blog/websockets-for-php-ratchet-push-chat-application/
以下是一般使用消息队列的入门知识: http://blog.thecodepath.com/2013/01/06/asynchronous-processing-in-web-applications-part-2-developers-need-to-understand-message-queues/
以下是RabbitMQ的教程(PHP可用的许多MQ解决方案中的一个简单选项),包括PHP示例:https://www.rabbitmq.com/getstarted.html