我的需求是每隔一段時間查詢資料庫,然後推送到所有人
程式碼類似如下:
while(true){
<code>$sql ="select 1+1"; $count=$mysql->query($sql); foreach($serv->connections as $fd) { $serv->push($fd, $count); } sleep(1000);</code>
}
我現在用swoole websocket的on('message')來寫這個的話,他是每個客戶端連線上來都要開一份這個程式碼在運作。
如何實現運行一個程式碼,所有客戶都能接受到啊。 。
我的需求是每隔一段時間查詢資料庫,然後推送到所有人
程式碼類似如下:
while(true){
<code>$sql ="select 1+1"; $count=$mysql->query($sql); foreach($serv->connections as $fd) { $serv->push($fd, $count); } sleep(1000);</code>
}
我現在用swoole websocket的on('message')來寫這個的話,他是每個客戶端連線上來都要開一份這個程式碼在運作。
如何實現運行一個程式碼,所有客戶都能接受到啊。 。
我記得有定時器吧?不過我也不懂
只用message的話,把message分成兩種,一種是管理員發送的訊息,另一種是發給其他用戶的,然後每當收到一個管理員的訊息就查一次資料庫,然後群發給其他人。
如果嫌這會佔用太多時間,可以把主要任務放到task裡,這樣管理員一發訊息馬上返回可以處理其他訊息,複雜的東西交給task完成。