基于事件的mysql for php套接字
Event based mysql for php socket?
我有一个web客户端,我在php/html/javascript/jquery编码。我的客户端通过javascript (post)从mysql服务器通过php脚本获取数据。我知道我可以在php-apache-mysql盒子上运行一个php套接字服务器,但是我如何告诉我的套接字服务器,mysql服务器的表上有一个新的记录刚刚发生,而不是每隔X秒检查一次新条目,通过crown job?是否存在"基于事件"的系统?
PHP中基于事件的体系结构是出了名的难以实现,但由于许多限制,至少可以说,它不是实现这类事情的最佳语言。您最好在Node.js或其他本身是事件驱动的语言/环境中这样做。
PHP并不是最好的语言,因为它不能是多线程的,而且你不能自己编写自定义的非阻塞例程——这使你在设计多客户端套接字服务器时处于严重的劣势。
已经说过,如果你决定在PHP中创建你的套接字服务器,这是可以做到的,尽管以一种稍微可怕的方式。基本流程是这样的:
- 设置一个MySQL触发器,通过
sys_exec()
调用外部程序 - 它调用的外部程序(这可能是一个PHP脚本)连接到正在运行的套接字服务器,通过任何你喜欢的方式,可能是套接字连接,可能是共享内存,可能是其他完全像POSIX信号,并通知套接字服务器进程的新行。
- 套接字服务器现在可以运行SELECT(或不,也许你从上面的脚本传递任何你需要的数据),做任何你需要做的数据,并将数据推送到客户端。
如果您已经设置了套接字监听器,那么您只需要编辑负责插入新的mysql记录的php脚本,以便在插入成功发生时向套接字发送信号。或许我没理解你的问题?
相关文章:
- 使用jquery将mysql数据获取到新的表行中
- 为什么JavaScript在for循环为3时向所有4发出警报
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Is onfling available for html, html5
- Setting default onclick behavior for <img> tag in gene
- 我的javascript for循环不起作用
- For循环冻结Javascript
- 如何在for循环中添加事件侦听器
- 将地理编码结果转换为php变量以发布到mysql数据库
- Javascript setTimeout for an array
- 双“for”循环(循环)
- 引用vue.js中v-for中的上一个值
- javascript for循环不起作用
- Javascript for while with mysql update when not having value
- Javascript and PHP promt for MySQL
- javascript张贴到php for mysql插入记录
- 基于事件的mysql for php套接字
- Node.js mysql查询for循环
- Javascript unhex for mysql
- 使用for循环向mysql输入数据