鍍金池/ 問答/PHP  Python/ 關(guān)于PHP服務(wù)器作為類似于中間中轉(zhuǎn)站作用的問題?

關(guān)于PHP服務(wù)器作為類似于中間中轉(zhuǎn)站作用的問題?

大神們晚上好,小弟有這樣的需求: PHP服務(wù)器作為中間人,為手機APP端和硬件設(shè)備做通訊傳遞(大致場景是這樣,可能某些措辭不專業(yè)),有一部分情況是APP端和硬件端主動調(diào)起PHP接口通過http進(jìn)行通訊,有一種情況(小弟就是這里迷了)是需要PHP服務(wù)器主動去和手機端、設(shè)備端進(jìn)行通訊(也可以說主動告訴兩個端口需要做什么事情),這個需求需要如何解決呢?需要用到哪方面的技術(shù)呢?請指教!

回答
編輯回答
孤島

php主動和手機端設(shè)備端通信?那php怎么找到它們呢?
感覺需要做個長連接吧,手機端設(shè)備端先請求服務(wù)器拉起長連接,然后再由服務(wù)端下發(fā)。但是php天生不太適合做長連接,你可以去看下swoole之類的輪子,或者(如果可能)換成適合長連接的Node.js之類的棧。

2017年3月16日 15:26
編輯回答
別逞強

這樣其實是PHP作為服務(wù)端,然后App和硬件作為客戶端,也可以認(rèn)為是數(shù)據(jù)的發(fā)送端
那么這里分成兩個場景

  • 非即時通訊場景

    • 例如只是一些數(shù)據(jù)從硬件采集,App上的用戶時不時看一下的話,只需要php服務(wù)端將數(shù)據(jù)存到數(shù)據(jù)庫,然后App調(diào)用接口請求的時候進(jìn)行查看即可
  • 即時通訊場景,例如即時監(jiān)控客戶端數(shù)據(jù)

    • 即時通訊場景可以使用HTTP輪詢或者建立socket長連接的方式,socket的話Swoole是非常好的選擇,特別是之后的swoole4.x。HTTP輪詢的話就沒什么好講,兩三秒請求一次數(shù)據(jù)
2017年10月4日 15:21