我自己寫了一個通訊協(xié)議,硬件發(fā)送數(shù)據(jù)過來的時候,在Events.php可以接收得到;但項目是用Thinkphp3.2.3寫的,我現(xiàn)在想把這個接收到的數(shù)據(jù)推送給Thinkphp處理一些邏輯上的問題或者說是把這個數(shù)據(jù)存到數(shù)據(jù)庫中。
很多朋友建議我用websocket來處理,官方手冊我也看了,也是介紹websocket;
但我想說的是,我的硬件設(shè)備只能連到gatewayworker,在只有硬件的情況下(硬件開機后就會自動發(fā)送指令,這個時候),有沒有什么辦法,把數(shù)據(jù)發(fā)送到gatewayworker上的時候,Thinkphp直接把這個接收到的數(shù)據(jù)存到數(shù)據(jù)庫,或者說gatewayworker怎么把數(shù)據(jù)庫推送到Thinkphp去處理。
還有一點:我的硬件信息是硬件工程提供的,已經(jīng)寫死了,我能從他那里拿到的都只是一些硬件的指令
PS:gateway_client在PHP中是個什么作用?只是為了給gatewayworker推送數(shù)據(jù)的話,我能夠直接推給我的硬件嗎?
要是有示例代碼就更好了。萬分感謝!
最簡單的辦法是在 GatewayWorker 里面直接操作數(shù)據(jù)庫,如果會很頻繁也不建議操作數(shù)據(jù)庫 ,直接搭配redis之類的使用,tp的接口請求的時候直接去redis獲取設(shè)備信息
在event.php里面處理 可以用composer require workerman/mysql組件 直接在onMessage里面處理數(shù)據(jù)
當(dāng)然也可以用curl的方式去調(diào)用tp寫的api接口處理