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

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

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

clipboard.png

使用了定時(shí)器

clipboard.png

但是這樣寫(xiě)執(zhí)行cli模式的時(shí)候就報(bào)錯(cuò)了

clipboard.png

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

回答
編輯回答
還吻

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

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

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

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

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

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

計(jì)劃任務(wù)啊!定時(shí)執(zhí)行就好了

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

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

2018年3月21日 01:42