鍍金池/ 問答/HTML5  PHP  HTML/ workerman結(jié)合thinkphp怎么定時發(fā)送數(shù)據(jù)?

workerman結(jié)合thinkphp怎么定時發(fā)送數(shù)據(jù)?

workerman結(jié)合thinkphp怎么實時更新數(shù)據(jù)?
整合了下方法,只能當(dāng)客戶端連接時觸發(fā),有消息時觸發(fā),當(dāng)用戶斷開連接時觸發(fā),那我想實時更新數(shù)據(jù)怎么辦?就比我想定時向客戶端發(fā)送信息或者說wokerman有沒有主動觸發(fā)發(fā)送數(shù)據(jù)到客戶端的方法呢?

clipboard.png

使用了定時器

clipboard.png

但是這樣寫執(zhí)行cli模式的時候就報錯了

clipboard.png

這樣寫就不報錯,但是echo在cli上了,我是想發(fā)送到客戶端,該怎么實現(xiàn)呢?

回答
編輯回答
還吻

thinkphp是基于http的,本身http自身是不提供客戶端和服務(wù)器間連接持續(xù)更新機制的,而且服務(wù)器端本身是不會主動向客戶端傳遞的,所有的訪問只能是服務(wù)器端響應(yīng)客戶端的請求。
所以實質(zhì)是客戶端要主動持續(xù)的進行請求
workerman是PHP socket 服務(wù)框架,而socket是可以面向連接的
要結(jié)合,想必客戶端要轉(zhuǎn)換為應(yīng)用socket連接,而不是http連接,此外thinkphp要專為socket。

2018年2月9日 19:40
編輯回答
澐染

其實文檔寫的很清楚了,要想推送消息到客戶端,你就必須獲取到當(dāng)前連接到服務(wù)器的客戶端。也就是官方文檔中的connections ,然后通過循環(huán)全部發(fā)送或者指定連id這樣的方式來發(fā)送信息 ,一樓兄弟給的地址是對的。

2017年5月11日 17:07
編輯回答
孤星

在客戶端連接之后,每個客戶端會有一個ID,可以根據(jù)ID主動推送數(shù)據(jù)

2018年2月14日 10:03
編輯回答
膽怯

計劃任務(wù)?。《〞r執(zhí)行就好了

2018年9月6日 23:43
編輯回答
心悲涼

謝邀!
真是抱歉,對于workerman我并無實際項目經(jīng)驗,看文檔應(yīng)該能實現(xiàn):http://doc.workerman.net/315239

2018年3月21日 01:42