首頁  >  文章  >  後端開發  >  用php寫sokket連接第三方伺服器,要保持連線不斷,每三分鐘向對方發一次心跳,php是單線程的,這個怎麼才能實現呢?

用php寫sokket連接第三方伺服器,要保持連線不斷,每三分鐘向對方發一次心跳,php是單線程的,這個怎麼才能實現呢?

WBOY
WBOY原創
2016-09-27 14:18:061264瀏覽

業務流程是這樣的,我們php伺服器用socket連接對方伺服器,對方伺服器會不定時的訊息傳送訊息給我們php伺服器,所以我們php需要一直read,read的同時還需要每三分鐘發一次心跳給對方,當php一直在read,對方沒有消息發過來的時候,php一直在等,怎麼才能保證每三分鐘發一次心跳?

回覆內容:

業務流程是這樣的,我們php伺服器用socket連接對方伺服器,對方伺服器會不定時的訊息傳送訊息給我們php伺服器,所以我們php需要一直read,read的同時還需要每三分鐘發一次心跳給對方,當php一直在read,對方沒有消息發過來的時候,php一直在等,怎麼才能保證每三分鐘發一次心跳?

一般 這個用php來做不是很好吧。

延遲3分鐘 sleep(3)
一直執行腳本 set_time_limit(0)
與客戶端斷開繼續執行 ignore_user_abort(0)

可以考慮使用swoole

你read的同時還要發心跳給它,用php-cli來做吧

swoole可以輕鬆搞定你的需求

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn