+ -
当前位置:首页 → 问答吧 → php如何实现主动发送消息到终端

php如何实现主动发送消息到终端

时间:2011-12-14

来源:互联网

现在有一个这样的应用场景,有一个php做后台的信息发布系统控制端,用来控制户外的信息发布终端(广告机,户外显示屏等),当客户在浏览器页面上点击重启,开关机时或做其他操作,我如何将这个信息主动发送给终端呀?
看了一些推送的办法,还是云里雾里,很多还是要终端先发送请求才可以,哪位大侠能指点一下吗?

作者: challchampion   发布时间: 2011-12-14

什么是终端,楼主你的要求有点变态,应该不是php能做到的吧,这应该已经是软件开发范畴了。

作者: mingfish2   发布时间: 2011-12-14

客户在浏览器页面上点击重启,开关机时或做其他操作,我如何将这个信息主动发送给终端呀?
这具体要看你的显示屏类型了,如果可以用SOCKET连接的,就用SOCKET连接

作者: zhouzhipen   发布时间: 2011-12-14

终端就是广告机,户外屏这些东西。
如果用http无法做到的话,倒是可以考虑用socket的,在php上用socket来主动发送信息要如何做呀?


引用 2 楼 zhouzhipen 的回复:

客户在浏览器页面上点击重启,开关机时或做其他操作,我如何将这个信息主动发送给终端呀?
这具体要看你的显示屏类型了,如果可以用SOCKET连接的,就用SOCKET连接

作者: challchampion   发布时间: 2011-12-14

这种需求用B/S模式明显是脑子不够用了。
首先有发布信息权限的肯定是极少数人,其次既然都是通过网络控制,那么直接做一个带授权功能的客户端直接对要控制的终端发送信息不就结了?根本不用做网页,还快捷简便。不要为了用PHP而用PHP,这么个用法永远也没有提高的可能,反而因为需求不好实现把自己搞得很狼狈。

作者: loadown   发布时间: 2011-12-14

引用 3 楼 challchampion 的回复:

终端就是广告机,户外屏这些东西。
如果用http无法做到的话,倒是可以考虑用socket的,在php上用socket来主动发送信息要如何做呀?


引用 2 楼 zhouzhipen 的回复:

客户在浏览器页面上点击重启,开关机时或做其他操作,我如何将这个信息主动发送给终端呀?
这具体要看你的显示屏类型了,如果可以用SOCKET连接的,就用SOCKET连接


对,这个就看你的"广告机,户外屏"这些是如何和你的php server联系的.

php里有socket库, 不过其它方式也很多,不一定需要

作者: helloyou0   发布时间: 2011-12-14

知道怎么用php做socket了。

谢谢你的回复,c/s的我们已经有了,我还不至于搞不清楚需求,4楼可能对我们的东西缺乏了解,你肯定的一些事恰恰不是那么回事。

引用 4 楼 loadown 的回复:

这种需求用B/S模式明显是脑子不够用了。
首先有发布信息权限的肯定是极少数人,其次既然都是通过网络控制,那么直接做一个带授权功能的客户端直接对要控制的终端发送信息不就结了?根本不用做网页,还快捷简便。不要为了用PHP而用PHP,这么个用法永远也没有提高的可能,反而因为需求不好实现把自己搞得很狼狈。

作者: challchampion   发布时间: 2011-12-14

问题的关键是搞这个项目的就只会半调子的php.你们吹乜...

作者: PhpNewnew   发布时间: 2011-12-14

7楼有什么好的建议吗

引用 7 楼 phpnewnew 的回复:

问题的关键是搞这个项目的就只会半调子的php.你们吹乜...

作者: challchampion   发布时间: 2011-12-14

终端和server之前是通过http来联系的,之前的办法:当页面上有操作发生时,我们把操作指令存储在一个文件中,终端定时通过http去取这个文件。现在考虑服务器能不能主动推送这些操作指令到终端。
5楼的其他方式指的是什么?能否指点一下


引用 5 楼 helloyou0 的回复:

引用 3 楼 challchampion 的回复:

终端就是广告机,户外屏这些东西。
如果用http无法做到的话,倒是可以考虑用socket的,在php上用socket来主动发送信息要如何做呀?


引用 2 楼 zhouzhipen 的回复:

客户在浏览器页面上点击重启,开关机时或做其他操作,我如何将这个信息主动发送给终端呀?
这具体要看你的显示屏类型了,如果可以用SOC……

作者: challchampion   发布时间: 2011-12-14

换成我的话我肯定不会用php做,如果非要的话 php可以做为一个前台,再写一个服务器端来接收php的输入数据进行控制。或者直接开发服务器端和客户端,抛开php.

也许php是固定的,你也可以在前端和你的后端(广告机上)都架设php来传递数据 呵呵,广告机其实也是个win操作系统.简单些直接post get 之后处理 这就简单多了吧...将事件处理成bat文件来调用...


引用 8 楼 challchampion 的回复:

7楼有什么好的建议吗

引用 7 楼 phpnewnew 的回复:

问题的关键是搞这个项目的就只会半调子的php.你们吹乜...

作者: PhpNewnew   发布时间: 2011-12-14

先的确定你的终端和服务端是怎么通讯的

作者: moocky   发布时间: 2011-12-14

定时ajax行不?

作者: coosh   发布时间: 2011-12-14

现在广告机之类的产品都是嵌入式的架构了,资源比较受限,而且这个b/s的控制端需要和其他公司的广告机来对接,所以我最多只能在协议上和对方商量。
直接开发服务器端和客户端,抛开php的意思是什么?


引用 10 楼 phpnewnew 的回复:

换成我的话我肯定不会用php做,如果非要的话 php可以做为一个前台,再写一个服务器端来接收php的输入数据进行控制。或者直接开发服务器端和客户端,抛开php.

也许php是固定的,你也可以在前端和你的后端(广告机上)都架设php来传递数据 呵呵,广告机其实也是个win操作系统.简单些直接post get 之后处理 这就简单多了吧...将事件处理成bat文件来调用...


引用 8……

作者: challchampion   发布时间: 2011-12-14

之前的方式在9楼有说,现在希望可以改进这种办法
刚刚又了解了下,服务端推送好像基本是需要客户端和服务端建立长连接,这可能行不通,不知道这样理解对吗。
其他的办法,tcp或udp也可以考虑

引用 11 楼 moocky 的回复:

先的确定你的终端和服务端是怎么通讯的

作者: challchampion   发布时间: 2011-12-14

我的终端是(广告机)linux的系统,上面并没有浏览器,定时ajax的思路就和我们之前的办法一个意思了。希望能有办法可以改进,目前是希望服务器端能主动推送

引用 12 楼 coosh 的回复:

定时ajax行不?

作者: challchampion   发布时间: 2011-12-14

直接开发服务器端和客户端,抛开php的意思是什么?

我说的就是你有的cs. 

让对方发布一个这样的接口就对了,客户肯定都有你们这样的需求.这不应该让你们来解决 需要他们来提供接口

作者: PhpNewnew   发布时间: 2011-12-14

我们自己也有广告机,如果和自己的对接,你觉得哪种办法会比较合适呢?

引用 16 楼 phpnewnew 的回复:

直接开发服务器端和客户端,抛开php的意思是什么?

我说的就是你有的cs.

让对方发布一个这样的接口就对了,客户肯定都有你们这样的需求.这不应该让你们来解决 需要他们来提供接口

作者: challchampion   发布时间: 2011-12-14

我们对你的系统不是太清楚.

"广告机"到底是什么什么我也不是太清楚,就是一个linux上运行的某个软件?

这个就是广告机(A)如何和php服务器(B)通讯的问题. 

你们目前的方法当然也行,其实广告机大概不必那么实时响应,现在的方法如果运行正常,实在也没必要改变.

A和B的通讯,一般都是有一个作为服务端,一个作为客户端, 你们目前的方法,是B服务端,A做客户端

如果要"推",是需要长连接或者服务器特别的支持,目前并不普遍, ajax轮询其实和你们目前方案类似, 而且因为你A既不是浏览器,所以不适用.

废话了一圈, 简单点说吧,

既然是linux, 可以让A做服务端,上面跑个守护进程X, B收到php发来的指令, 用socket向A上的X发个请求,然后X运行相应指令即可. 这个当然是用c/c++之类做比较好

不用socket也行,任何A/B之间能交换信息的方法都可以...比如,ssh过去运行指令,ftp一个文本过去,X直接连接A上的数据库拿信息...当然也包括你们现有方案....

作者: helloyou0   发布时间: 2011-12-14

谢谢,你分析的很清楚,广告机可以认为就是linux系统上运行的一个软件。
之所以想换方案,就是觉得之前的响应太慢,比如我要设置广告机的音量,或获取广告机的音量,反应的速度很慢,用户体验不是很好。现在要重新做这套系统,要求支持的广告机的数量和操作人员的数量比较大,所以考虑着有没有更好的办法


引用 18 楼 helloyou0 的回复:

我们对你的系统不是太清楚.

"广告机"到底是什么什么我也不是太清楚,就是一个linux上运行的某个软件?

这个就是广告机(A)如何和php服务器(B)通讯的问题.

你们目前的方法当然也行,其实广告机大概不必那么实时响应,现在的方法如果运行正常,实在也没必要改变.

A和B的通讯,一般都是有一个作为服务端,一个作为客户端, 你们目前的方法,是B服务端,A做客户端

如果……

作者: challchampion   发布时间: 2011-12-14