php如何每隔几秒读取一次数据
通过php调用com接口进行远程服务器的连接和读取数据
并把数据展示到网页的功能。
$com->connect(server);
$com->read();
现在通过window.setInterval和ajax调用php文件已经可以实现每隔固定时间进行读取
但是使用此方法有个严重的问题,每次read之前都要connect服务器
不知道有没有什么方法可以只connect一次以后只需要read就可以了。
之前尝试使用单例模式也没有作用。
回复讨论(解决方案)
只要你的程序不不终止,就不需要重新连接
只要你的程序不不终止,就不需要重新连接
可能我没说明白
a.php:
$comvar = new COM("aaa.client") or die("create failed");
$comvar->connect(server);
$comvar->read();
?>
ajax在多次调用a.php时每次都connect
因为无法将$comvar变量设置为类似C语言中的全局变量,所以不能在第二次读取的时候直接使用$comvar->read();
mysql永久连接可以不? mysql_pconnect()
mysql永久连接可以不? mysql_pconnect()
连接方法被封装在com中,并不是mysql
每次请求结束,会自动释放当前php执行进程,所以php没有办法的。
对于网络连接,如果你的服务器是nginx,你可以用nginx做一个http长连接,php每次都是连接本地的nginx,这样php服务器连接目前机器,就只有一个网络连接了。
这个没有办法解决。
每次执行完都会断开连接的。除非你使用的是socket来连。
你前端用的是setInterval,不能做到connect一次,以后直接就read
你可以改成前端 websocket 和 php socket
还是你没明白我说的意思:只要你的程序不不终止,就不需要重新连接
但是在 HTTP 会话中,php 程序只运行在会话期间,也就是会话结束,程序就终止
所以重新连接是必然的。也不要错误的理解 C语言程序 的行为,因为在程序关闭前,他一直在运行。所以就不需要重新连接
如果你使用 websocket,那么会话就不是 HTTP 了,而是 websocket 协议(简称 WS)自然表现就不一样了
还是你没明白我说的意思:只要你的程序不不终止,就不需要重新连接
但是在 HTTP 会话中,php 程序只运行在会话期间,也就是会话结束,程序就终止
所以重新连接是必然的。也不要错误的理解 C语言程序 的行为,因为在程序关闭前,他一直在运行。所以就不需要重新连接
如果你使用 websocket,那么会话就不是 HTTP 了,而是 websocket 协议(简称 WS)自然表现就不一样了
刚开始确实没明白,不过现在懂了,已经花了2天时间改用websocket了
上一篇: PHP使用正则表达式匹配中文,有部分匹配不出来的解决办法
下一篇: 阿里云能设置域名吗
推荐阅读
-
php一次性大量数据入库如何解决
-
关于PHP 如何用 curl 读取 HTTP chunked 数据
-
Angular.js如何从PHP读取后台数据
-
thinkphp 在哪里读取的Conf/conf.php文件里的数据库配置信息,该如何处理
-
求高手帮小弟我看上这个PHP读取mysql的接口如何读取不出数据来?
-
小弟我用flex+php+mysql读取数据显示出现了有关问题!看下写法如何改?
-
php 如何读取这些数据呢??
-
php-如何实现PHP网站的数据做成不以外链为形式的PC端,而是直接读取同一数据库的形式。
-
PHP能不能把js文件写入数据库,前台用js文件,直接读取数据库,该如何解决
-
php如何读取串口的数据