php如何每隔几秒读取一次数据

php中文网
发布: 2016-06-23 13:33:10
原创
1582人浏览过

项目的主要功能是利用编写注册好的com
通过php调用com接口进行远程服务器的连接和读取数据
并把数据展示到网页的功能。
$com->connect(server);
$com->read();

现在通过window.setInterval和ajax调用php文件已经可以实现每隔固定时间进行读取
但是使用此方法有个严重的问题,每次read之前都要connect服务器
不知道有没有什么方法可以只connect一次以后只需要read就可以了。

之前尝试使用单例模式也没有作用。 

一帧秒创
一帧秒创

基于秒创AIGC引擎的AI内容生成平台,图文转视频,无需剪辑,一键成片,零门槛创作视频。

一帧秒创 41
查看详情 一帧秒创

回复讨论(解决方案)

只要你的程序不不终止,就不需要重新连接

只要你的程序不不终止,就不需要重新连接


可能我没说明白
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怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号